很多小伙伴在學(xué)習(xí)字典的時(shí)候?qū)@個(gè)數(shù)據(jù)結(jié)構(gòu)的使用抱有疑惑,其實(shí)對(duì)于字典的操作無非就是讀和寫,那么python怎么讀取字典的鍵值對(duì)呢?接下來的這篇文章帶你了解。
1、我要取出字典中所有的鍵-值對(duì)
取出字典中所有的鍵-值對(duì)時(shí),可以使用items()返回一個(gè)鍵值對(duì)列表,并配合for循環(huán)進(jìn)行遍歷
#創(chuàng)建一個(gè)存儲(chǔ)一個(gè)學(xué)生的信息,通過遍歷可以取出所有信息 student={'name':'xiaoming','age':11,'school':'tsinghua'} for key,value in student.items(): print(key+':'+str(value))
輸出:
age:11
name:xiaoming
school:tsinghua
注意:
遍歷出的返回值輸出和存儲(chǔ)的順序不一樣,輸出順序每次都會(huì)變化
在for循環(huán)中key和value兩個(gè)變量需要使用逗號(hào)‘,'隔開
2、我要取出字典中的鍵
可以使用keys()方法取出字典中的鍵,不取對(duì)應(yīng)的值
#創(chuàng)建一個(gè)人和對(duì)應(yīng)喜歡水果的字典 people={'lifei':'apple','fanming':'peach','gaolan':'banana','hanmeimie':'peach'} for name in people.keys(): print(name)
輸出:(順序是隨機(jī)的)
hanmeimie
gaolan
fanming
lifei
注意:keys()方法返回的是列表,要用列表的思維考慮問題
keys()返回的值順序是不確定的,如果想按序排列,可以使用sorted()進(jìn)行排序
#創(chuàng)建一個(gè)人和對(duì)應(yīng)喜歡水果的字典 people={'lifei':'apple','fanming':'peach','gaolan':'banana','hanmeimie':'peach'} for name in sorted(people.keys()): print(name)
輸出:
fanming
gaolan
hanmeimie
lifei
3、我要取出字典中的值
可以使用values()取出字典中的值
#創(chuàng)建一個(gè)人和對(duì)應(yīng)喜歡水果的字典 people={'lifei':'apple','fanming':'peach','gaolan':'banana','hanmeimie':'peach'} for fruit in people.values(): print(fruit)
輸出:
peach
banana
peach
apple
注意,有沒有看到上邊輸出的結(jié)果中有重復(fù)值,如果我想去除重復(fù)值怎么辦呢,可以使用集合set() 去除重復(fù)值
#創(chuàng)建一個(gè)人和對(duì)應(yīng)喜歡水果的字典 people={'lifei':'apple','fanming':'peach','gaolan':'banana','hanmeimie':'peach'} for fruit in set(people.values()): print(fruit)
輸出:
apple
peach
banana
練習(xí)
創(chuàng)建一個(gè)人員名單,有些人在水果字典中(承接上邊的喜歡水果字典),有些人不在其中,對(duì)于已明確喜歡水果的,詢問是否還需要其它的水果,對(duì)于未明確喜歡水果的,邀請(qǐng)他說出他喜歡的一種水果。
#創(chuàng)建一個(gè)人和對(duì)應(yīng)喜歡水果的字典 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('你能告訴我您喜歡的一種水果嗎?')
輸出:
你能告訴我您喜歡的一種水果嗎?
你能告訴我您喜歡的一種水果嗎?
您還需要其他的水果嗎?
您還需要其他的水果嗎?
總結(jié)
一上午好多事,費(fèi)了好大勁才學(xué)完這一節(jié)啊
1、首先遍歷字典所有的鍵-值對(duì)可以使用items()
2、只遍歷鍵時(shí)可以使用key(),還可以使用sorted()進(jìn)行排序
3、只遍歷值時(shí),可以使用values(),還可以使用set()去除值中重復(fù)的值
補(bǔ)充:python 取出字典的鍵或者值/如何刪除一個(gè)字典的鍵值對(duì)/如何遍歷字典
先定義一個(gè)字典并直接進(jìn)行初始化賦值
my_dict = dict(name="lowman", age=45, money=998, hourse=None)
1.取出該字典所有的鍵
key_list = my_dict.keys() 返回的是列表
my_dict = dict(name="lowman", age=45, money=998, hourse=None) key_list = my_dict.keys() print(list(key_list))
輸出:
['hourse', 'name', 'age', 'money']
取出字典所有的鍵,這里其實(shí)還有一個(gè)方法, 就是使用內(nèi)置函數(shù)set(), 將其轉(zhuǎn)換為集合數(shù)據(jù)結(jié)構(gòu). 集合,其實(shí)可以理解為只有鍵的字典:
item = {"name": "lowman", "age": 27} data = set(item) print(data)
輸出:
{'age', 'name'}
注意,這樣輸出的是集合類型
2.取出該字典所有的值
value_list = my_dict.values() 返回的是列表
my_dict = dict(name="lowman", age=45, money=998, hourse=None) value_list = my_dict.values() print(list(value_list))
輸出:
[None, 45, 'lowman', 998]
注意:在python2環(huán)境中這兩個(gè)方法返回的是列表,但是在python3環(huán)境下返回的卻是迭代器,如果希望通過下標(biāo)直接取到需要的元素,可以通過list()方法將其先轉(zhuǎn)化為列表,再進(jìn)行取值.
3.取出字典某個(gè)鍵的值
value = my_dict["key"] 這樣取值的話如果沒有這個(gè)鍵就會(huì)拋出異常
4.安全地取出字典某個(gè)鍵的值
這樣取值的話如果沒有這個(gè)鍵就返回None:value = my_dict.get("key")
也可以自定義一個(gè)默認(rèn)值進(jìn)行返回:value = my_dict.get("key", 默認(rèn)值)
5.遍歷字典
for item in my_dict: print(item)
輸出:
name
hourse
money
age
取出的是該字典的鍵
6.自帶方法 items() 可以同時(shí)取出鍵與值
for key, value in my_dict.items(): print(key,value) for item in my_dict.items(): print(item) # 這樣取值的話,返回的就是一個(gè)元組,里面包含兩個(gè)元素,第一個(gè)是鍵,第二個(gè)為值
輸出:
hourse None
money 998
age 45
name lowman
('hourse', None)
('money', 998)
('age', 45)
('name', 'lowman')
7.刪除一個(gè)字典的鍵值對(duì)
my_dict = {"name":"lowman", "age":12} del my_dict["name"]
這樣就把整個(gè)鍵值對(duì)給刪除掉了
以上就是python怎么讀取字典的鍵值對(duì)的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持W3Cschool。