Coursera/py4inf/python data structure 筆記 密歇根大學


本文是Coursera上密歇根大學的Dr.Chuck開設的Python for everybody系列課程中Python Data Structure的個人筆記,記錄備查閱


課程主頁:https://www.coursera.org/learn/python-data


File

handle = open(filename,mode)
mode: 'r' read   'w' write


文件讀入的時候有兩種形式讀入:
1.依次讀入每一行(後面的\n一起讀取),直接用handle = open(filename,mode)即可
2.將整個文件的內容讀取成一長串的字符串,handle=open(filename,mode), inp= handle.read()

---------------------------------
List

兩種不同的循環:
friends = ['Joseph','Glenn','Sally']
1.for friend in friends:
     print friend

2.for i in range(len(friends)):
    print friend[i]

List裏面的內容是可以變化的,而string和tuple元組的是不能變的immutable
List裏面的內容是有序的,dict裏面的內容是無序的Hasgmap
----------------------------------
Dict

dict.get(key,defalutvalue) 取dict裏面的key對應的value,如果沒有這個key,那麼就返回defaultvalue

dict.keys()
dict.values()
dict.items() ----->  出來的tuple

兩個同步的循環變量(其實使用tuple實現的)
jjj = { 'chuck' : 1 , 'fred' : 42, 'jan': 100}
for aaa,bbb in jjj.items() :
    print aaa, bbb
--------------------------------
Tuple
1.兩個同步循環變量
tuple可以同時給兩個變量賦值,左邊的括號可以省略
(a,b)=(88,99)   or   a,b =(88,99)

又因爲dict.items()出來的是由tuple組成的list
所以可以有兩個同步的循環變量 for (a,b) in dict.items()://code here

2. key-sort
dict本身是無法進行排序的,單個tuple內部也無法進行比較,沒有sort(),但是tuples之間可以通過比較運算符來進行排序

所以,本來不可排序的dict在轉換以後可以通過這樣的方式來進行排序。有兩種方法:
    tmplist = dict.items()
1.templist.sort()  在這種方式裏面不能寫成dict.items().sort()
2.sorted(templist)  在這種方式裏面可以寫sorted(dict.items())


3.value-sort
思路是將dict裏面的tuple交換位置以後放到list裏面,然後sort
    c=dict()
    temp=list()
    for k,v in c.items():
        temp.append((v,k))
    temp.sort(reverser=True)

4.list comprehension 列表推導式
    [expression for variable in list if condition]
    所以上面的就可以寫成sorted([(v,k) for k,v in c.items()])




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章