1. 程式人生 > >Python 基礎之字典(dict)的用法

Python 基礎之字典(dict)的用法

python dict字典
字典是Python中唯一的內建對映型別,字典中的資料沒有特定的順序,可以通過特定的鍵(key)來存取資料。鍵可以是數字、元組或字串,但不能是列表。


字典的常用方法:
1.1 clear()方法
1.2 copy()方法
1.3 fromkeys()方法
1.4 get()方法
1.5 has_key()方法
1.6 items、iteritems方法
1.7 keys、iterkeys
1.8 popitem()方法
1.9 setdefault()方法
1.10 update()方法
1.11 values、itervalues方法

 

字典的建立及存取資料操作:
1.1字面量建立
user_info={                     #建立字典
	"name":"james",
	"user_id":1122,
	"addr":"python home"
}
print user_info					#列印整個字典的資料
print user_info['name']			#取user_info字典中,鍵為name的值
print user_info['addr']			#取user_info字典中,鍵為addr的值
執行結果:
{'user_id': 1122, 'name': 'james', 'addr': 'python home'}
james
python home
[Finished in 0.1s]


1.2 dict()函式建立字典
list_user=[("name","Hugh"),("user_id",123456),("Hobby","python , java")]
print dict(list_user)				#dict()函式建立字典
print dict(list_user)["name"]		#取生成字典後的鍵name的值
print dict(list_user)['Hobby']		#取生成字典後的鍵Hobby的值
執行結果:
{'Hobby': 'python , java', 'user_id': 123456, 'name': 'Hugh'}
Hugh
python , java
[Finished in 0.2s]

1.3 dict()函式建立字典
user_info=dict(name="Jason",age=18,Hobby="python,java")		#建立字典
print user_info
執行結果:
{'Hobby': 'python,java', 'age': 18, 'name': 'Jason'}
[Finished in 0.3s]

1.4 字典賦值
fruit={}                  #建立空字典
fruit['apple']="12.18"	  #新增資料
fruit['banana']="0.89"
print fruit
執行結果:
{'apple': '12.18', 'banana': '0.89'}
[Finished in 0.2s]



字典的基礎操作:
len()函式,用於返回字典中鍵-值對的數量(字典的長度)
color={'red':11,'blue':22,'green':33,'black':44,'White':55}
print len(color)   #獲取color字典的長度
執行結果:
5

in 關鍵字,用於檢查字典中是否存在指定的鍵(key)
color={'red':11,'blue':22,'green':33,'black':44,'White':55}
print 'red' in color      #檢查red是否存在color字典中,存在則返回True,反之返回false
執行結果:
True

del 關鍵字,用於刪除字典中指定的鍵-值對
color={'red':11,'blue':22,'green':33,'black':44,'White':55}
del color['blue']    #刪除color中blue的鍵-值資料
print color
執行結果:
{'black': 44, 'White': 55, 'green': 33, 'red': 11}
[Finished in 0.2s]



clear()方法,用於清除字典中所有的項。
color={'red':11,'blue':22,'green':33,'black':44,'White':55}
color.clear()    #清除color中的所有項
print color
執行結果:
{}
[Finished in 0.2s]


copy()方法,用於複製字典
color={'red':11,'blue':22,'green':33,'black':44,'White':55}
copy_color=color.copy()
print copy_color
執行結果:
{'blue': 22, 'green': 33, 'White': 55, 'black': 44, 'red': 11}
[Finished in 0.1s]


fromkeys()方法,用於給定的鍵,建立新的字典,因此每個鍵都對應一個預設的值None。
print {}.fromkeys(['name','user_id','Hobby'])   #根據指定鍵,建立字典,預設值為None
執行結果:
{'Hobby': None, 'user_id': None, 'name': None}
[Finished in 0.1s]

print dict.fromkeys(['name','user_id','Hobby'])   ##根據指定鍵,建立字典,預設值為None
執行結果:
{'Hobby': None, 'user_id': None, 'name': None}
[Finished in 0.1s]

get()方法,用於訪問字典項的方法,當訪問一個不存在的鍵時,沒有任何異常,而得到一個預設值None,也可以自定義預設值。
dict_a={}
print dict_a.get('name','not fount')     #獲取dict_a字典name的值,找不到返回not fount
執行結果:
not fount
[Finished in 0.1s]


has_key()方法,用於檢查特定的鍵(key)是否含有特定的鍵,與 in 關鍵字的效果差不多。
color={'red':11,'blue':22,'green':33,'black':44,'White':55}
print color.has_key("red")    #檢查color中是否含有red鍵,如果找到則返回True,反之返回false
執行結果:
True
[Finished in 0.1s]


items、iteritems
item方法,用於將字典所有的項按列表的形式返回,iteritems與items差不過,不過iteritems返回的是一個迭代器。
items()方法
color={'red':11,'blue':22,'green':33,'black':44,'White':55}
print color.items()   #將字典轉化為列表的形式
執行結果:
[('blue', 22), ('black', 44), ('White', 55), ('green', 33), ('red', 11)]
[Finished in 0.2s]

iteritems()方法
color={'red':11,'blue':22,'green':33,'black':44,'White':55}
print color.iteritems()   #將字典轉化為列表的形式,返回一個迭代器
print list(color.iteritems())   #列印迭代器的資料
執行結果:
<dictionary-itemiterator object at 0x021405D0>    #迭代器
[('blue', 22), ('black', 44), ('White', 55), ('green', 33), ('red', 11)]
[Finished in 0.2s]


keys、iterkeys
keys方法,用於將字典中所有鍵轉換為列表的形式,而iterkeys與keys差不多,不過iterkeys返回的是一個迭代器。
keys()方法
color={'red':11,'blue':22,'green':33,'black':44,'White':55}
print color.keys()   #將字典的所有鍵轉化為列表的形式
執行結果:
['blue', 'black', 'White', 'green', 'red']
[Finished in 0.2s]

iterkeys()方法
color={'red':11,'blue':22,'green':33,'black':44,'White':55}
print color.iterkeys()   #將字典的所有鍵轉化為列表的形式,返回一個迭代器
print list(color.iterkeys())   #列印迭代器的資料
執行結果:
<dictionary-keyiterator object at 0x021B05D0>
['blue', 'black', 'White', 'green', 'red']
[Finished in 0.2s]


popitem()方法,用於隨機移除字典中項(鍵-值對),並返回被移除的項,因為字典中沒有最後一項的說法,所有的項都是隨機排序。
color={'red':11,'blue':22,'green':33,'black':44,'White':55}
print color.popitem()  #隨機移除color中的一項,並返回移除的(鍵-值對)
print color
執行結果:
('blue', 22)
{'black': 44, 'White': 55, 'green': 33, 'red': 11}
[Finished in 0.2s]


setdefault()方法,用於獲取字典指定鍵的值,與get方法類似,不過,如果字典中無該鍵,則將其新增到字典中。
user_info={}
print user_info.setdefault('name')   #獲取user_info中的name,如果沒有則將name新增到字典中,值預設為Nome
print user_info
執行結果:
None
{'name': None}
[Finished in 0.2s]

找不到指定鍵,新增後並給定預設值
user_info={}
print user_info.setdefault('Hobby','python') #如果獲取不到Hobby,則將其新增到字典中,並給定值為:Python
print user_info
執行結果:
python
{'Hobby': 'python'}
[Finished in 0.2s]


update()方法,將一個字典更新到另一個字典中。
user_info={
	'name':'james',
	'user_id':'123456'
}
H={
	'Hobby':'python , java'
}
user_info.update(H) #將字典H中的項,新增到user_info中
print user_info
執行結果:
{'Hobby': 'python , java', 'user_id': '123456', 'name': 'james'}
[Finished in 0.3s]


values、itervalues
values方法,用於將字典中所有值轉換為列表形式,itervalues與values差不多,但是,itervalues返回的是一個迭代器。
values方法
color={'red':11,'blue':22,'green':33,'black':44,'White':55}
print color.values()   #將字典中的所有值轉換為列表
執行結果:
[22, 44, 55, 33, 11]
[Finished in 0.2s]

itervalues()方法
color={'red':11,'blue':22,'green':33,'black':44,'White':55}
print color.itervalues()   #將字典中的所有值轉換為列表,返回一個迭代器
print list(color.itervalues())
執行結果:
<dictionary-valueiterator object at 0x021E05D0>
[22, 44, 55, 33, 11]
[Finished in 0.2s]