如果字典中存儲了一些值,我想要取出來該怎么操作呢?
1、我要取出字典中所有的鍵-值對
取出字典中所有的鍵-值對時,可以使用items()返回一個鍵值對列表,并配合for循環(huán)進(jìn)行遍歷
#創(chuàng)建一個存儲一個學(xué)生的信息,通過遍歷可以取出所有信息
student={'name':'xiaoming','age':11,'school':'tsinghua'}
for key,value in student.items():
print(key+':'+str(value))
輸出:
age:11
name:xiaoming
school:tsinghua
注意:
遍歷出的返回值輸出和存儲的順序不一樣,輸出順序每次都會變化
在for循環(huán)中key和value兩個變量需要使用逗號‘,'隔開
2、我要取出字典中的鍵
可以使用keys()方法取出字典中的鍵,不取對應(yīng)的值
#創(chuàng)建一個人和對應(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)建一個人和對應(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)建一個人和對應(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)建一個人和對應(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)建一個人員名單,有些人在水果字典中(承接上邊的喜歡水果字典),有些人不在其中,對于已明確喜歡水果的,詢問是否還需要其它的水果,對于未明確喜歡水果的,邀請他說出他喜歡的一種水果。
#創(chuàng)建一個人和對應(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、首先遍歷字典所有的鍵-值對可以使用items()
2、只遍歷鍵時可以使用key(),還可以使用sorted()進(jìn)行排序
3、只遍歷值時,可以使用values(),還可以使用set()去除值中重復(fù)的值
補(bǔ)充:python 取出字典的鍵或者值/如何刪除一個字典的鍵值對/如何遍歷字典
先定義一個字典并直接進(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í)還有一個方法, 就是使用內(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)境中這兩個方法返回的是列表,但是在python3環(huán)境下返回的卻是迭代器,如果希望通過下標(biāo)直接取到需要的元素,可以通過list()方法將其先轉(zhuǎn)化為列表,再進(jìn)行取值.
3.取出字典某個鍵的值
value = my_dict["key"] 這樣取值的話如果沒有這個鍵就會拋出異常
4.安全地取出字典某個鍵的值
這樣取值的話如果沒有這個鍵就返回None:value = my_dict.get("key")
也可以自定義一個默認(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() 可以同時取出鍵與值
for key, value in my_dict.items():
print(key,value)
for item in my_dict.items():
print(item) # 這樣取值的話,返回的就是一個元組,里面包含兩個元素,第一個是鍵,第二個為值
輸出:
hourse None
money 998
age 45
name lowman
('hourse', None)
('money', 998)
('age', 45)
('name', 'lowman')
7.刪除一個字典的鍵值對
my_dict = {"name":"lowman", "age":12}
del my_dict["name"]
這樣就把整個鍵值對給刪除掉了
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:- python中必會的四大高級數(shù)據(jù)類型(字符,元組,列表,字典)
- 淺談Python列表嵌套字典轉(zhuǎn)化的問題
- python字典與json轉(zhuǎn)換的方法總結(jié)
- python字典按照value排序方法
- python3訪問字典里的值實(shí)例方法
- 在Python中字典按值排序的實(shí)現(xiàn)方法
- python 獲取字典鍵值對的實(shí)現(xiàn)
- Python txt文件如何轉(zhuǎn)換成字典
- Python字典實(shí)現(xiàn)偽切片功能
- python munch庫的使用解析