1. 程式人生 > >Python學習_怎麼讀取字典的所有鍵-值對

Python學習_怎麼讀取字典的所有鍵-值對

如果字典中儲存了一些值,我想要取出來該怎麼操作呢?
1、我要取出字典中所有的鍵-值對
取出字典中所有的鍵-值對時,可以使用items()返回一個鍵值對列表,並配合for迴圈進行遍歷

#建立一個儲存一個學生的資訊,通過遍歷可以取出所有資訊
student={'name':'xiaoming','age':11,'school':'tsinghua'}
for key,value in student.items():
    print(key+':'+str(value))

輸出:
age:11
name:xiaoming
school:tsinghua

注意:
遍歷出的返回值輸出和儲存的順序不一樣,輸出順序每次都會變化
在for迴圈中key和value兩個變數需要使用逗號‘,’隔開

2、我要取出字典中的鍵
可以使用keys()方法取出字典中的鍵,不取對應的值

#建立一個人和對應喜歡水果的字典
people={'lifei':'apple','fanming':'peach','gaolan':'banana','hanmeimie':'peach'}
for name in people.keys():
    print(name)

輸出:(順序是隨機的)
hanmeimie
gaolan
fanming
lifei

注意:keys()方法返回的是列表,要用列表的思維考慮問題

keys()返回的值順序是不確定的,如果想按序排列,可以使用sorted()進行排序

#建立一個人和對應喜歡水果的字典
people={'lifei':'apple','fanming':'peach','gaolan':'banana','hanmeimie':'peach'}
for name in sorted(people.keys()):
    print(name)

輸出:
fanming
gaolan
hanmeimie
lifei

3、我要取出字典中的值
可以使用values()取出字典中的值

#建立一個人和對應喜歡水果的字典
people={'lifei':'apple','fanming':'peach','gaolan':'banana'
,'hanmeimie':'peach'} for fruit in people.values(): print(fruit)

輸出:
peach
banana
peach
apple

注意,有沒有看到上邊輸出的結果中有重複值,如果我想去除重複值怎麼辦呢,可以使用集合set() 去除重複值

#建立一個人和對應喜歡水果的字典
people={'lifei':'apple','fanming':'peach','gaolan':'banana','hanmeimie':'peach'}
for fruit in set(people.values()):
    print(fruit)

輸出:
apple
peach
banana

練習
建立一個人員名單,有些人在水果字典中(承接上邊的喜歡水果字典),有些人不在其中,對於已明確喜歡水果的,詢問是否還需要其它的水果,對於未明確喜歡水果的,邀請他說出他喜歡的一種水果。

#建立一個人和對應喜歡水果的字典
people_fruit={'lifei':'apple','fanming':'peach','gaolan':'banana','hanmeimei':'peach'}
people=['lilei','caiming','hanmeimei','gaolan']
for name in people:
    if name in people_fruit.keys():
        print('您還需要其他的水果嗎?')
    elif name not in people_fruit.keys():
        print('你能告訴我您喜歡的一種水果嗎?')

輸出:
你能告訴我您喜歡的一種水果嗎?
你能告訴我您喜歡的一種水果嗎?
您還需要其他的水果嗎?
您還需要其他的水果嗎?

總結
一上午好多事,費了好大勁才學完這一節啊
1、首先遍歷字典所有的鍵-值對可以使用items()
2、只遍歷鍵時可以使用key(),還可以使用sorted()進行排序
3、只遍歷值時,可以使用values(),還可以使用set()去除值中重複的值