alien_0 = {'color': 'green', 'points': 5}
print(alien_0['color'])
print(alien_0['points'])
1使用字典
字典是一系列 key-value對(duì)泵喘,每個(gè)鍵都與一個(gè)值相關(guān)聯(lián)悲雳,Key-value對(duì)是兩個(gè)相關(guān)聯(lián)的值翻屈。
key和value之間用冒號(hào)分隔,key-value之間用逗號(hào)分隔诲泌,在字典中盲赊,存儲(chǔ)多少個(gè)key-value對(duì)都行。
alien_0 = {'color': 'green'}
1.2敷扫、訪問(wèn)字典中的值
alien_0 = {'color': 'green', 'points': 5}
print(alien_0['color'])
new_points = alien_0['points']
print("You just earned " + str(new_points) + " points!")
1.3哀蘑、添加鍵-值對(duì)
字典是一種動(dòng)態(tài)結(jié)構(gòu),可隨時(shí)在其中添加鍵-值對(duì)葵第。
key-value對(duì)的排列順序與添加順序不同绘迁,python不關(guān)心鍵-值對(duì)的添加順序,而只關(guān)心鍵和值之間的關(guān)聯(lián)關(guān)系卒密。
alien_0 = {'color': 'green', 'point': 5}
print(alien_0)
alien_0['x_position'] = 0
alien_0['y_position'] = 25
print(alien_0)
1.4缀台、創(chuàng)建空字典
可以直接使用一對(duì)空花括號(hào)定義一個(gè)空字典,然后根據(jù)需要再添加鍵值對(duì)
alien_0 = {}
alien_0['color'] = 'green'
alien_0['point'] = 5
print(alien_0)
1.5栅受、修改字典中的值
alien_0 = {'color': 'green'}
print(alien_0['color'])
alien_0['color'] = 'yellow'
print(alien_0['color'])
1.6将硝、刪除鍵值對(duì)
對(duì)于字典中不再需要的信息,可以使用del語(yǔ)句將相應(yīng)的鍵值對(duì)徹底刪除
alien_0 = {'color': 'green', 'point': 5}
print(alien_0)
del alien_0['points']
print(alien_0)
1.7屏镊、由類(lèi)似對(duì)象組成的字典
可以使用字典來(lái)存儲(chǔ)眾多對(duì)象的同一信息
favorite_languages = {
'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}
print("sarah`s favorite language is " + favorite_languages['sarah'].title() + ".")
2依疼、遍歷字典
2.1、遍歷所有的鍵值對(duì)
遍歷字典時(shí)而芥,鍵-值對(duì)的返回順序也與存儲(chǔ)順序不同律罢。
user_0 = {
'usrname': 'efermi',
'first': 'enrico',
'last': 'fermi',
}
for key, value in user_0.item():
print("\nKey: " + key)
print("Value: " + value)
2.2、遍歷所有的鍵
遍歷字典時(shí)棍丐,會(huì)默認(rèn)遍歷所有的鍵误辑,所以可以加.keys()
,也可以不加
favorite_languages = {
'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}
firends = ['phil', 'sarah']
for name in favorite_languages.keys():
print(name.title())
if name in friends:
print(" Hi " + name.title() + ", I see your favorite language is " + favorite_languages[name].title() + "!")
還可以使用關(guān)鍵字in
, not in
確定某個(gè)Key是否在字典中
Keys()并非只能用于遍歷歌逢,實(shí)際上巾钉,它返回了一個(gè)列表,其中包含字典中所有鍵秘案。
favorite_languages = {
'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}
if 'erin' not in favorite_languages.keys():
print("Erin, please take our poll!")
2.3砰苍、按順序遍歷字典中的所有鍵
獲取字典元素時(shí),獲取順序是不可預(yù)測(cè)的阱高。
要以特定順序返回元素赚导,可以在for循環(huán)中對(duì)返回的鍵進(jìn)行排序
for name in sorted(favorited_languages.keys()):
print(name.title() + ", thank you for taking the poll.")
2.4、遍歷字典中所有值
2.4.1赤惊、基本方法
獲取字典中包含的值吼旧,可使用方法values(),它返回一個(gè)值列表未舟,而不包含任何鍵圈暗。
for language in favorite_languages.values():
print(language.title())
2.4.2、去除重復(fù)值
基本方法中沒(méi)有考慮值重復(fù)的問(wèn)題处面,如果要剔除重復(fù)值厂置,可使用集合set
。集合類(lèi)似于列表魂角,但是每個(gè)元素都必須獨(dú)一無(wú)二昵济。
set()
方法可以讓python找出列表中獨(dú)一無(wú)二的元素,并使用這些元素來(lái)創(chuàng)建一個(gè)集合
for language in set(favorite_languages.values()):
print(language.title())
3野揪、嵌套
3.1访忿、字典列表
可以創(chuàng)建一個(gè)字典列表,列表中的每個(gè)元素都是一個(gè)字典
alien_0 = {'color': 'red', 'points': 5}
alien_1 = {'color': 'green', 'points': 10}
alien_2 = {'color': 'yellow', 'points': 15}
aliens = [alien_0, alien_1, alien_2]
for alien in aliens:
print(alien)
使用range()自動(dòng)生成多個(gè)字典對(duì)象
aliens = []
for alien_number in range(30):
new_alien = {'color': 'green', 'points': 5, 'speed': 'slow'}
aliens.append(new_alien)
for alien in aliens[:5]:
print(alien)
print("/nTotal number of aliens: " + str(len(aliens)))
3.2斯稳、在字典中存儲(chǔ)列表
favorite_languages = {
'jen': ['python', 'ruby'],
'sarah': ['c'],
'edward': ['ruby', 'go'],
'phil': ['python', 'haskell'],
}
for name, languages in favorite_languages.items():
print("\n" + name.title() + "'s favorite languages are: ")
for language in languages:
print(lanuage)
3.3海铆、在字典中存儲(chǔ)字典
users = {
'aeinstein': {
'first': 'albert',
'last': 'einstein',
'location': 'princeton',
},
'mcurie': {
'first': 'marie',
'last': 'curie',
'location': 'paris',
},
}
for username, user_info in users.items():
print("\nUsername: " + username)
full_name = user_info['first'] + " " + user_info['last']
location = user_info['location']
print("\tFull name: " + full_name.title())
print("\tLocation: " + location.title())