Python之字典

字典是爲能夠更準確地爲各種真實物體建模。你可以新創建一個表示人的字典,然後想在其中存儲多少信息就存儲多少信息:姓名、年齡、地址、職業以及要描述的任何方面。你還能夠存儲任意兩種相關的信息,如一系列單詞及其含義等。

一個簡單的字典

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)

輸出結果:

這裏寫圖片描述

發佈了35 篇原創文章 · 獲贊 9 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章