本文是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()])