在Python中,字典是一系列鍵-值對。每個鍵都與一個值相關聯,可以使用鍵來訪問與之相關聯的值。與鍵相關聯的值可以是數字、字符串、列表乃至字典。事實上,可將任何Python對象用作字典中的值。
在Python中,字典用放在花括號{}中的一系列鍵-值對表示,鍵-值對之間用逗號分隔。
一、使用字典
1、訪問字典中的值
要獲取與鍵相關聯的值,可依次指定字典名和放在方括號內的值。
alien = {'color' : 'red'}
print(alien['color'])
2、添加鍵-值對
要添加鍵-值對,可依次指定字典名、用方括號括起來的鍵和相應的值。
alien['color'] = 'red'
alien['size'] = 'big'
print(alien)
注:鍵-值對的排列順序與添加順序不同,Python不關心鍵-值對的添加順序,而只關心鍵和值之間的關聯關系。
3、修改字典中的值
要修改字典中的值,可依次指定字典名、用方括號括起來的鍵以及與該鍵相關聯的新值。
alien = {'color' : 'red'}
print(alien)
#修改字典中的值
alien['color'] = 'green'
print(alien)
4、刪除鍵-值對
使用del語句將相應的鍵-值對徹底刪除,使用del語句,必須指定字典名和要刪除的鍵。
alien = {'color' : 'red' , 'point' : 5}
print(alien)
#刪除鍵-值對
del alien['color']
print(alien)
5、由類似對象組成的字典
alien = {'color' : 'red' ,
'point' : 5,
'size' : 'big'
}
print("The alien's coloris " + alien['color'] +
"and it's size is " + alien['size'].title() +
".")
注:上述代碼還演示了如何將較長的print語句分成多行,選擇在合適的地方拆分要打印的內容,并在第一行莫問加上一個拼接運算符(+),按回車鍵進入prin語句的后續各行,并使用呢tab鍵將它們對其并縮進一級。指定要打印的所有內容后,在print語句的最后一行末尾加上右括號。
二、遍歷字典
1、遍歷所有的鍵-值對
alien = {'color' : 'red','size' : 'big','point' : 5}
for key,value in alien.items():
print("\nKey: " + key)
print("\nValue: " + value)
注:即使遍歷字典,鍵-值對返回的順序也和存儲順序不同。
2、遍歷字典中的所有鍵
alien = {'color' : 'red','size' : 'big','point' : 5}
for key in alien.keys():
print(key)
注:遍歷字典時,會默認遍歷所有的值,所以,省略了keys效果一樣,顯示地使用方法keys()可讓代碼更容易理解。
3、按順序遍歷字典中的所有值
要以特定的順序返回元素,可以在for循環中對返回的鍵進行排序。為此,可使用函數sorted()來獲得按特定順序排列的鍵列表的副本
alien = {'color' : 'red','size' : 'big','point' : 5}
for key in sorted(alien.keys()):
print(key)
4、遍歷字典中的所有值
alien = {'color' : 'red','size' : 'big','point' : 5}
for value in alien.values():
print(value)
這種做法提取字典中所有的值,而沒有考慮是否重復。為剔除重復項,可以使用集合set。
alien = {'color' : 'red','size' : 'big','point' : 5}
for value in set(alien.values()):
print(value)
三、嵌套
嵌套即是將一系列字典存儲在列表中或者將列表作為值存儲在字典中。
1、字典列表
alien_1 = {'color' : 'red','size' : 'big','point' : 5}
alien_2 = {'color' : 'green','size' : 'small','point' : 1}
alien_3= {'color' : 'yellow','size' : 'big','point' : 4}
aliens = [alien_1,alien_2,alien_3]
for alien in aliens:
print(alien)
2、在字典中存儲列表
pizza = {
'crust' : 'thick',
'toppings' : ['mushrooms','cheese']
}
for topping in pizza['toppings']:
print(topping)
注:每當需要在字典中將一個鍵關聯到多個值時,就可以在字典中嵌套一個列表。
3、在字典中存儲字典
可能會使代碼變得復雜。
users = {
'aeinstein' : {
'first' : 'albert',
'last' : 'einstein',
},
'mcurie' : {
'first' : 'marie',
'last' : 'curie',
},
}