>>> demo = {'a':123, 'b':456, 'c':789} # 使用“:“分隔鍵與值 >>> demo['a'] 123
當然也可以不必在一開始就做指定動作, 能夠在不同位置指定內容讓Dictionaries擁有了極大的彈性
>>> demo = {} # 指定一個空殼給demo >>> demo['a'] = 123 >>> demo['b'] = 456 >>> demo {'a' : 123, 'b' : 456}
巢狀內容的呼叫
>>> demo = {'name':{'first':'Bob', 'last':'Smith'}, 'job':['dev', 'mgr'], 'age':40.5} >>> demo['name']['first'] 'Bob'
依照鍵值排序顯示內容:事實上我們可以發現Dictionaries顯示出的內容並不會從左到右排序, 所以有以下方法可供參考
>>> D = {'a':1, 'c':2, 'b':3} >>> Ks = D.keys() >>> Ks ['a', 'c', 'b'] >>> Ks.sort() >>> Ks ['a', 'b', 'c'] >>> for key in Ks: print key, '=>', D[key] a => 1 b => 2 c => 3
上面的方法是先取出鍵值陣列排序在依序取出值, 但還有一種更簡單的方式就是使用內置的sorted()方法
>>> for key in sorted(D): print key,'=>',D(key) a => 1 b => 2 c => 3
5. tuples -> tuples 是python中一個特別的元件, 你可能不曾在別的語言中碰過, 它類似List但卻無法更動順序, 也無法在宣告之後指定參照
>>> T = (1, 2, 3, 4) >>> len(T) 4 >>> T + (5, 6) (1, 2, 3, 4, 5, 6) >>> T[0] 1 >>> T[0] = 2 # 如果想指定參照會出現Exception Traceback (most recent call last): File "<pyshell#4>", line 1,in <module> T[0]=2 TypeError:'tuple' object does not support item assignment
事實上tuples並不像List那麼常被用在練習中...但是tuples的好處就是在於"不可更動性"
6. Files -> 檔案操作物件通常一般不會包含在核心物件之內, 古怪的是你無法使用敘述式建立它們, 唯一的方法只有呼叫open()函式
寫入資料
>>> f = open('data.txt', 'w') #開啟data.txt, 'w'為寫入write模式 >>> f.write('Hello\n') # 寫入字串 >>> f.write('world\n') >>> f.close() # 關閉檔案flush剛剛寫入的資料
讀取資料
>>> f = open('data.txt') # 也可以在型態上加上'r' >>> data = f.read() # 讀取函式read(), 但其實也可以使用 for text in f 來讀 >>> data 'Hello\nworld\n' >>> print data Hello world
其他還有一堆類似Files物件的工具, 譬如pipes, fifos, sockets, keyed-access files, object persistence, descriptor-based files, relational and object-oriented database interfaces等, 以後陸續有學習到再做介紹。
沒有留言:
張貼留言