1. 程式人生 > >Python字典操作--轉載

Python字典操作--轉載

原文連結:http://blog.csdn.net/u014082714/article/details/47058029

特點:
1、鍵與值用冒號“:”分開;
2、項與項用逗號“,”分開;
3、字典中的鍵必須是唯一的,而值可以不唯一。

Python字典操作

dict = {'ob1':'computer', 'ob2':'mouse', 'ob3':'printer'}

技巧:

字典中包含列表:dict={'yangrong':['23','IT'],"xiaohei":['22','dota']}

字典中包含字典:dict={'yangrong':{"age":"23","job":"IT"},"xiaohei":{"'age':'22','job':'dota'"}}

增加字典元素

>>> nameinfo={}

>>> nameinfo['a1']='yangrong'   #若字典裡有a1主鍵,則覆蓋原來的值,沒有,則新增

>>> nameinfo

{'a1': 'yangrong'}

遍歷字典主鍵與鍵值

>>> for k, value innameinfo.items():

...  print k,value

...

a1 yangrong

檢視字典所有主鍵

>>> dict = {'ob1':'computer','ob2':'mouse', 'ob3':'printer'}  

>>>

>>>

>>> dict.keys()

['ob2', 'ob3', 'ob1']

判斷字典中是否有該主鍵

>>> dict.keys()

['ob2', 'ob3', 'ob1']

>>> dict.has_key('ob2')     #'ob2' in dict

True

>>> dict.has_key('ob4')

False

也可以用迴圈方法來判斷

for key in dict.keys():

但是不夠簡潔,

檢視字典所有鍵值內容

>>> dict = {'ob1':'computer','ob2':'mouse', 'ob3':'printer'}

>>> dict.values()

['mouse', 'printer', 'computer']

索引一個字典
字典D中的值與相關的鍵k被索引表示為:D[k]。索引字典沒有的鍵會引起意外。例如:

 
dict['ob1']                           # computer

d['a']                           # raises exception

列出所有專案

>>> dict.items()

[('ob2', 'mouse'), ('ob3', 'printer'),('ob1', 'computer')]

清空字典

>>> dict.clear()

>>> dict

{}

拷貝字典

>>> dict

{'ob2': 'mouse', 'ob3': 'printer', 'ob1':'computer'}

>>> a=dict

>>> a

{'ob2': 'mouse', 'ob3': 'printer', 'ob1':'computer'}

>>> b=dict.copy()

>>> b

{'ob2': 'mouse', 'ob3': 'printer', 'ob1': 'computer'}

比較字典

>>> cmp(a,b)

首先比較主鍵長度,然後比較鍵大小,然後比較鍵值大小,(第一個大返回1,小返回-1,一樣返回0

更新字典

>>>dict={'yangrong':{"age":"23","job":"IT"},"xiaohei":{"'age':'22','job':'dota'"}}

>>> dict

{'xiaohei':set(["'age':'22','job':'dota'"]), 'yangrong': {'age': '23', 'job':'IT'}}

>>> dict['xiaohei']=111        #修改一級字典

>>> dict

{'xiaohei': 111, 'yangrong': {'age': '23','job': 'IT'}}

>>> dict['yangrong']['age']=25    #修改二級字典

>>> dict

{'xiaohei': 111, 'yangrong': {'age': 25,'job': 'IT'}}

>>> dict={'yangrong':['23','IT'],"xiaohei":['22','dota']}

>>>dict['xiaohei'][1]="dota2"         #修改字典中列表某項,1是代表列表中第2個字串。

>>> dict

{'xiaohei': ['22', 'dota2'], 'yangrong':['23', 'IT']}  

刪除字典元素

>>> dict

{'xiaohei': ['22', 'dota2'], 'yangrong':['23', 'IT']}

>>> del dict['xiaohei']          #刪除xiaohei鍵值

>>> dict

{'yangrong': ['23', 'IT']}

>>> dict

{'yangrong': ['23', 'IT']}

>>>

>>> del dict['yangrong'][1]    #刪除yangrong主鍵的每2字值

>>> dict

{'yangrong': ['23']}

刪除整個字典

>>> dict

{'yangrong': ['23']}

>>> dict.clear()  #del dict

>>> dict

{}

將字串切分為列表

>>> s="hello world bye"

>>> s.split()    #用於把有規律的文字,讀取出來後,使用列表進行修改,再寫入檔案。

['hello', 'world', 'bye']

將列表轉換為字串

S.split(str, ' ')  #stringlist,以空格切分

儲存字典(pickle序列化)

#需匯入pickle模組  import pickle

把字典內容存入檔案

f=file('data.txt','wb')   #新建檔案data.txt'wb'b是開啟塊檔案,對於裝置檔案有用

pickle.dump(a,f)      #a序列化存入檔案

f.close()

把內容讀入字典(反序列化)

a=open('data.txt','rb')    #開啟檔案

print pickle.load(a)      #把內容全部反序列化

原文連結請點選這裡