一、使用字典
在Python中,字典是一系列鍵—值對。每個鍵都與一個值相關(guān)聯(lián),你可以使用鍵來訪問與之關(guān)聯(lián)的值,與值相關(guān)聯(lián)的值可以是數(shù)字、字符串、列表乃至字典。
在Python中,字典用放在花括號{}中的一系列的鍵—值對表示,如下所示:
alien = {'color': 'green', 'points': 5}
1. 訪問字典中的值
要獲取與鍵相關(guān)聯(lián)的值,可依次指定字典名和放在花括號內(nèi)的鍵,如下所示:
alien = {'color': 'green'}
print(alien['color'])
2. 添加鍵—值對
字典是一種動態(tài)結(jié)構(gòu),可隨時在其中添加鍵—值對。要添加鍵—值對,可依次指定字典名、用方括號括起的鍵和相關(guān)聯(lián)的值。
alien = {'color': 'green', 'points': 5}
print(alien)
alien['x'] = 0
alien['y'] = 25
print(alien)
3. 修改字典中的值
要修改字典中的值,可依次指定字典名、用方括號括起的鍵以及與該鍵相關(guān)聯(lián)的新值。
alien = {'color': 'green'}
print(alien)
alien['color'] = 'yellow'
print(alien)
4. 刪除鍵-值對
對于字典中不再需要的信息,可使用del語句將相應的鍵-值對徹底刪除。使用del語句時,必須指定字典名和要刪除的鍵。如下所示:
alien = {'color': 'green', 'points': 5}
print(alien)
del alien['color']
print(alien)
二、遍歷字典
1. 遍歷所有的鍵-值對
編寫用于遍歷字典的for循環(huán),可聲明兩個變量,用于存儲鍵-值對中的鍵和值,對于這兩個變量,可使用任何名稱。
for語句的第二部分包含字典名和方法items( ),它返回一個鍵值對列表,接下來,for循環(huán)依次將每個鍵-值對存儲到指定的兩個變量中。
注意:即使遍歷字典,鍵-值對的返回順序也與存儲順序不同
alien = {'color': 'green', 'points': 5}
for key, value in alien.items():
print("\n" + key)
print(value)
2.遍歷字典中的所有鍵
在不需要使用字典中的值時,方法keys( )可以返回一個鍵列表。
alien = {'color': 'green', 'points': 5}
for key in alien.keys():
print(key)
3.按順序遍歷字典中的所有值
要以特定的順序返回元素,一種辦法是在for循環(huán)中對返回的鍵進行排序。為此,可使用函數(shù)sorted( )來獲得按特定順序排列的鍵列表的副本:
alien = {'color': 'green', 'points': 5}
for key in sorted(alien):
print(key)
4. 遍歷字典中的所有值
要遍歷字典中的所有值,可以使用方法values( ),他返回一個值列表,而不包含任何鍵。
alien = {'color': 'green', 'points': 5}
for value in alien.values():
print(value)
上面的方法會提取字典中的所有的值,二沒有考略是否重復。為剔除重復項,可使用集合(set)。集合類似于列表,但每個元素都必須是獨一無二的。
pets = {
'jen': 'cat',
'sarah': 'dog',
'phill': 'cat',
'mark': 'dog',
}
for cat in set(pets.values()):
print(cat)
三、嵌套
有時候,需要將一系列的字典存儲在列表中,會將列表存儲在字典中,這稱為嵌套??梢栽诹斜碇星短鬃值?、在字典中嵌套列表甚至在字典中嵌套字典。
1. 字典列表
alien0 = {'color': 'green', 'points': 5}
alien1 = {'color': 'yellow', 'points': 10}
alien2 = {'color': 'red', 'points': 15}
aliens = [alien0, alien1, alien2]
for alien in aliens:
print(alien)
2.在字典中存儲列表
favorite_language = {
'jen': ['python', 'ruby'],
'sarah': ['c'],
'edward': ['ruby', 'go'],
'phil': ['python', 'haskell']
}
for name, languages in favorite_language.items():
print("\n" + name + ":")
for language in languages:
print("\t" + language)
3. 在字典中存儲字典
users = {
'jen': {
'first': 'albert',
'last': 'jen',
},
'mcurie':{
'first': 'marie',
'last': 'mcurie'
}
}
for user, user_info in users.items():
print(user + ":" + user_info['first'].title() + " " +
user_info['last'].title())