App下載

Python 怎么讀取字典的所有鍵值對(duì)?

港城寶藏女孩 2021-08-12 09:11:32 瀏覽數(shù) (5635)
反饋

很多小伙伴在學(xué)習(xí)字典的時(shí)候?qū)@個(gè)數(shù)據(jù)結(jié)構(gòu)的使用抱有疑惑,其實(shí)對(duì)于字典的操作無(wú)非就是讀和寫,那么python怎么讀取字典的鍵值對(duì)呢?接下來(lái)的這篇文章帶你了解。

1、我要取出字典中所有的鍵-值對(duì)

取出字典中所有的鍵-值對(duì)時(shí),可以使用items()返回一個(gè)鍵值對(duì)列表,并配合for循環(huán)進(jìn)行遍歷

#創(chuàng)建一個(gè)存儲(chǔ)一個(gè)學(xué)生的信息,通過(guò)遍歷可以取出所有信息
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()方法返回的是列表,要用列表的思維考慮問(wèn)題

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

注意,有沒(méi)有看到上邊輸出的結(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ì)于已明確喜歡水果的,詢問(wèn)是否還需要其它的水果,對(duì)于未明確喜歡水果的,邀請(qǐng)他說(shuō)出他喜歡的一種水果。

#創(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)境下返回的卻是迭代器,如果希望通過(guò)下標(biāo)直接取到需要的元素,可以通過(guò)list()方法將其先轉(zhuǎn)化為列表,再進(jìn)行取值.

3.取出字典某個(gè)鍵的值

value = my_dict["key"] 這樣取值的話如果沒(méi)有這個(gè)鍵就會(huì)拋出異常

4.安全地取出字典某個(gè)鍵的值

這樣取值的話如果沒(méi)有這個(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。


0 人點(diǎn)贊