1、什麼是字典?
字典是python語言中唯一的對映型別。
對映型別物件裡雜湊值(鍵,key)和指向的物件(值,value)是一對多的的關係,通常被認為是可變的雜湊表。
字典物件是可變的,它是乙個容器型別,能儲存任意個數的python物件,其中也可包括其他容器型別。
字典型別與序列型別的區別:
1.訪問和訪問資料的方式不同。
2.序列型別只用數字型別的鍵(從序列的開始按數值順序索引);
3.對映型別可以用其他物件型別作鍵(如:數字、字串、元祖,一般用字串作鍵),和序列型別的鍵不同,對映型別的鍵直
4.接或間接地和儲存資料值相關聯。
5.對映型別中的資料是無序排列的。這和序列型別是不一樣的,序列型別是以數值序排列的。
6.對映型別用鍵直接「對映」到值。
字典是python中最強大的資料型別之一。
2、如何建立字典和給字典賦值
一般形式:
dict = {}
dict =
關鍵字引數建立字典,如:adict= dict(name='allen',age='40′)
或用fromkeys()方法,如,adict = {}.fromkeys((『x','y'), -1) 這樣建立的字典的value是一樣的,若不給值,預設為none。
從python 2.2 版本起
>>> fdict = dict((['x', 1], ['y', 2]))
>>> fdict
從python 2.3 版本起, 可以用乙個很方便的內建方法fromkeys() 來建立乙個"預設"字典, 字
典中元素具有相同的值 (如果沒有給出, 預設為none):
>>> ddict = {}.fromkeys(('x', 'y'), -1)
>>> ddict
>>>
>>> edict = {}.fromkeys(('foo', 'bar'))
>>> edict
#!/usr/bin/python
seq = ('name', 'age', '***')
dict = dict.fromkeys(seq)
print "new dictionary : %s" % str(dict)
dict = dict.fromkeys(seq, 10)
print "new dictionary : %s" % str(dict)
結果:
new dictionary :
new dictionary :
特點:1、鍵與值用冒號「:」分開;
2、項與項用逗號「,」分開;
3、字典中的鍵必須是唯一的,而值可以不唯一。
dict =
技巧:
字典中包含列表:dict=
字典中包含字典:dict=,"xiaohei":}
>>> nameinfo={}
>>> nameinfo['a1']='yangrong' #若字典裡有a1主鍵,則覆蓋原來的值,沒有,則新增
>>> nameinfo
>>> for k, value innameinfo.items():
... print k,value
...a1 yangrong
>>> dict =
>>>
>>>
>>> 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 =
>>> dict.values()
['mouse', 'printer', 'computer']
索引乙個字典
dict['ob1'] # computer
d['a'] # raises exception
>>> dict.items()
[('ob2', 'mouse'), ('ob3', 'printer'),('ob1', 'computer')]
>>> dict.clear()
>>> dict
{}>>> dict
>>> a=dict
>>> a
>>> b=dict.copy()
>>> b
>>> cmp(a,b)
首先比較主鍵長度,然後比較鍵大小,然後比較鍵值大小,(第乙個大返回1,小返回-1,一樣返回0)
>>>dict=,"xiaohei":}
>>> dict
}>>> dict['xiaohei']=111 #修改一級字典
>>> dict
}>>> dict['yangrong']['age']=25 #修改二級字典
>>> dict
}>>> dict=
>>>dict['xiaohei'][1]="dota2" #修改字典中列表某項,1是代表列表中第2個字串。
>>> dict
>>> dict
>>> del dict['xiaohei'] #刪除xiaohei鍵值
>>> dict
>>> dict
>>>
>>> del dict['yangrong'][1] #刪除yangrong主鍵的每2字值
>>> dict
>>> dict
>>> dict.clear() #同del dict
>>> dict
{}>>> s="hello world bye"
>>> s.split() #用於把有規律的文字,讀取出來後,使用列表進行修改,再寫入檔案。
['hello', 'world', 'bye']
將列表轉換為字串
s.split(str, ' ') #
將string
轉list
,以空格切分
#需匯入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) #把內容全部反序列化
python操作字典 Python 字典操作高階
學習了 python 基本的字典操作後,學習這些高階操作,讓寫出的 更加優雅簡潔和 pythonic 與字典值有關的計算 問題想對字典的值進行相關計算,例如找出字典裡對應值最大 最小 的項。解決方案一 假設要從字典 中找出值最小的項,可以這樣做 d min zip d.values d.keys 2...
python 字典操作
python 語法之字典 2009 10 21 磁針石 xurongzhong gmail.com 部落格 oychw.cublog.cn python essential reference 4th edition 2009 beginning python from novice to prof...
python字典操作
1 什麼是字典?字典是python語言中唯一的對映型別。對映型別物件裡雜湊值 鍵,key 和指向的物件 值,value 是一對多的的關係,通常被認為是可變的雜湊表。字典物件是可變的,它是乙個容器型別,能儲存任意個數的python物件,其中也可包括其他容器型別。字典型別與序列型別的區別 1.訪問和訪問...