python 字典 内存_Python 字典(联合内存、联合数组)
字典
Python有一個內建數據類型是字典(Dictionaries)。字典在某些語言中可能稱為“聯合內存”("associative memories'')或“聯合數組”("associative arrays'')。序列是以連續的整數為索引,與此不同的是,字典以關鍵字為索引,關鍵字可以是任意不可變類型,通常用字符串或數值。如果元組中只包含字符串和數字,它可以做為關鍵字,如果它直接或間接的包含了可變對象,就不能當做關鍵字。不能用鏈表做關鍵字,因為鏈表可以用它們的 append() 和 extend() 方法,或者用切片、或者通過檢索變量來即時改變。
理解字典的最佳方式是把它看做無序的關鍵字:值對( key:value pairs )集合,關鍵字必須是互不相同的(在同一個字典之內)。一對大括號創建一個空的字典:{}。初始化鏈表時,在大括號內放置一組逗號分隔的關鍵字:值對,這也是字典輸出的方式。
字典的主要操作是依據關鍵字來存儲和析取值。也可以用del來刪除關鍵字:值對。如果你用一個已經存在的關鍵字存儲值,以前為該關鍵字分配的值就會被遺忘。試圖析取從一個不存在的關鍵字中讀取值會導致錯誤。
字典的keys() 方法返回由所有關鍵字組成的鏈表,該鏈表的順序不定(如果你需要它有序,只能調用關鍵字鏈表的sort()方法)。使用字典的 has_key() 方法可以檢查字典中是否存在某一關鍵字。
這是一個關于字典應用的小示例:
>>> tel = {'jack': 4098, 'sape': 4139}>>> tel['guido'] = 4127
>>> tel{'sape': 4139, 'guido': 4127, 'jack': 4098}>>> tel['jack']4098
>>> del tel['sape']>>> tel['irv'] = 4127
>>> tel{'guido': 4127, 'irv': 4127, 'jack': 4098}>>> tel.keys()['guido', 'irv', 'jack']>>> tel.has_key('guido')
True
鏈表中存儲關鍵字-值對元組的話,字典可以從中直接構造。關鍵字-值對來自一個模式時,可以用鏈表推導式。簡單的表達關鍵字-值鏈表。
>>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])
{'sape': 4139, 'jack': 4098, 'guido': 4127}>>> dict([(x, x**2) for x in vec]) #use a list comprehension
{2: 4, 4: 16, 6: 36}
循環技巧
在字典中循環時,關鍵字和對應的值可以使用 items() 方法同時解讀出來。
>>> knights = {'gallahad': 'the pure', 'robin': 'the brave'}>>> for k, v inknights.items():
...printk, v
...
gallahad the purerobin the brave
特殊的URL字符串處理:
>>> importurllib>>> importurlparse>>> params = urllib.urlencode({'tbpm':'4','status':'false'})>>>params'status=false&tbpm=4'
總結
以上是生活随笔為你收集整理的python 字典 内存_Python 字典(联合内存、联合数组)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pd 生成mysql 脚本_Powerd
- 下一篇: python关闭线程daemon_pyt