字典是爲能夠更準確地爲各種真實物體建模。你可以新創建一個表示人的字典,然後想在其中存儲多少信息就存儲多少信息:姓名、年齡、地址、職業以及要描述的任何方面。你還能夠存儲任意兩種相關的信息,如一系列單詞及其含義等。
一個簡單的字典
person.py
person = {'name':'楊明','age':23}
print(person['name'])
print(person['age'])
執行結果:
添加鍵-值對
字典是一種動態結構,可隨時在其中添加鍵-值對,可一次指定字典名、用方括號括起的鍵和相關聯的值。
爲第一個例子添加性別和地址的鍵-值對:
person = {'name':'楊明','age':23}
print(person)
#爲該人添加性別和地址
person['sex'] = 'woman'
person['address'] = '北京市海淀區'
print(person)
輸出結果爲:
刪除鍵-值對
對於字典中不再需要的信息,可使用del語句將相應的鍵-值對徹底刪除。使用del語句時,必須指定字典名和要刪除的鍵。
例如,將上述中年齡刪除
person = {'name':'楊明','age':23}
print(person)
#爲該人添加性別和地址
person['sex'] = 'woman'
person['address'] = '北京市海淀區'
print(person)
#刪除年齡
del person['age']
print(person)
輸出結果:
遍歷字典
一個Python字典可能只含幾個鍵-值對,也可能包含數百個鍵-值對。鑑於字典可能包含大量的數據,Python支持對字典遍歷。
使用for循環遍歷鍵-值對
favourties_lang = {
'su':'C++',
'yang':'Python',
'liu':'java',
}
for key,value in favourties_lang.items():
print(key.title()+"'s favorties lang is "+value.title()+".")
輸出結果:
分別遍歷字典中的鍵和值
favourties_lang = {
'su':'C++',
'yang':'Python',
'liu':'java',
}
print("遍歷其中的鍵:")
for name in favourties_lang.keys():
print(name)
print("遍歷其中的值:")
for language in favourties_lang.values():
print(language)
輸出結果:
注意:上述單獨取出字典中的值是沒有考慮重複。涉及的值很少時,這也許不是問題,但如果被調查者很多,最終列表可能包含大量的重複項。爲剔除重複項,可使用集合(set)。
favourties_lang = {
'su':'C++',
'yang':'Python',
'liu':'java',
'zhang':'Python',
}
for language in set(favourties_lang.values()):
print(language)
輸出結果:
嵌套
有時候,需要將一系列字典存儲在列表中,或將列表作爲值存儲在字典中,這稱爲嵌套。你可以在列表中嵌套字典、在字典中嵌套列表甚至在字典中嵌套字典。
例如:
#創建一個用於存儲人的空列表
people = []
#創建30個女性
for person in range(30):
new_person = {'sex':'woman','worker':'Doctor'}
people.append(new_person)
#顯示前五個人
for doctor in people[:5]:
print(doctor)
print('......')
#顯示創建了多少個人
print("此次創建了:"+str(len(people)))
輸出結果:
在字典中存儲列表
有時候,需要將列表存儲在字典中,而不是將字典存儲在列在表中。
person.py
#創建一個存儲人信息的字典
person ={
'name':"楊明",
'愛好':['閱讀','旅遊','音樂'],
}
#概述這個人的愛好
print(person['name']+"的愛好有:")
for hobbies in person['愛好']:
print(hobbies)
輸出結果: