首页 > 编程知识 正文

遍历字典 python,python3 遍历字典

时间:2023-05-03 13:15:22 阅读:209519 作者:2927

1、遍历字典


# 解: 一个python字典包含不定的key , value (键值对),它以各种方式存储信息,因此有多种遍历的方式,可以遍历字典的所有键值对,也可以仅遍历键或值


2、遍历所有的键值对


# 在for循环 后可以编写2个任意名字的变量,分别对应字典中的键和值
# 字典对象.items() 作用是把字典转成键值对的列表 [('color', 'green'), ('shape', 'Cube')]
# 列表才能进行循环,需要转成列表[],如果直接使用遍历字典--会默认遍历所有的键,系统也会自己转成可循环的列表见3.2中
alien = {
    "color": "green",
    "shape": "Cube"
}
aa = alien.items()
print(aa)
# 输出结果:dict_items([('color', 'green'), ('shape', 'Cube')])

for co, sha in alien.items():
    print(f"nkey的值:{co}")
    print(f"value的值:{sha}")

# 输出结果:
# key的值:color
# value的值:green
# key的值:shape
# value的值:Cube


3、遍历字典中所有的键


# 适用在不需要使用字典中的值时,使用keys()很有用
# keys()方法并非只能用于遍历,也可以用于见3.3 使用方式,
# keys()返回的是一个列表,其中包含字典中所有的键


language = {'xiaoming': 'python', 'liyan': 'pythononon'}
bb = language.keys()
print(bb)
# 输出结果:dict_keys(['xiaoming', 'liyan'])

3.1 显式地使用 keys()让代码更加容易理解,但是也可以省略它,见3.2,结果一致
for name in language.keys():
    print(f"大家好我叫:  {name.title()}")
# 输出结果:
# 大家好我叫:  Xiaoming
# 大家好我叫:  Liyan

 3.2 遍历字典时,会默认遍历所有的键
for name in language:
    print(f"大家好我叫:  {name.title()}")
    print(f"我喜欢的语言是: {language[name].title()}")
# 输出结果:
# 大家好我叫:  Xiaoming
# 我喜欢的语言是: Python
# 大家好我叫:  Liyan
# 我喜欢的语言是: Pythononon

3.3 判断lisi某同学是否存在在字典中

if "lisi" in language.keys():
    print("yhdfh同学在language字典中")
else:
    print("yhdfh同学不在language字典中")

# 输出结果:yhdfh同学不在language字典中

4、安装特定顺序遍历字典中所有的键  sorted(列表):对列表进行临时排序

name_age = {"liuyan": "20", "zhangshang": "18", "andy": "28"}
for nameage in sorted(name_age.keys()):
    print(f"大叫好我叫: {nameage}")
# 输出结果:
# 大叫好我叫: andy
# 大叫好我叫: liuyan
# 大叫好我叫: zhangshang

5、遍历字典中的所有值


# 如果只是想知道字典中的值,可以使用values()来返回一个值列表,不包含任何的key
# 遍历字典中所有的值/ key 然后去重,使用set()

languages = {'xiaoming': 'python', 'liyan': 'python', "zhangshan": "java", "wanwu": "c++"}

5.1 遍历字典中所有的值
for language in languages.values():
    print(language)
# 输出结果:
# python
# python
# java
# c++

5.2 遍历字典中所有的值然后去重,使用set()去重
for language in set(languages.values()):
    print(language)
# 输出结果:
# python
# java
# c++


 5.3 使用set()去重,可以灵活使用去重的方法
langu = {
    'xiaoming': 'python',
    'liyan': 'python',
    "zhangshan": "java",
    'liyan': 'python',
    "zhangshan": "java",
    "wanwu": "c++"
}
for name, like in set(langu.items()):
    print(name, like)
# 输出结果:
# liyan python
# zhangshan java
# xiaoming python
# wanwu c++


print(f"去重后的字典的key:{set(langu)}" )
# 输出结果:去重后的字典的key:{'xiaoming', 'wanwu', 'zhangshan', 'liyan'}

print(f"去重后的字典的key和value:{set(langu.items())}" )
# 输出结果:去重后的字典的key和value:{('xiaoming', 'python'), ('zhangshan', 'java'), ('wanwu', 'c++'), ('liyan', 'python')}

lists = ["aa", "bb", "aa", "bb", "cc"]
print(f"去重后的list:{set(lists)}")
# 输出结果:去重后的列表:{'aa', 'cc', 'bb'}

listsa = {"aa", "bb", "aa", "bb", "cc"}
print(f"去重后的集合:{set(listsa)}")
# 输出结果:去重后的集合:{'bb', 'aa', 'cc'}

listsB = ("aa", "bb", "aa", "bb", "cc")
print(f"去重后的元组:{set(listsB)}")
# 输出结果:去重后的元组:{'bb', 'aa', 'cc'}

6、集合和字典容易混
# 集合的定义如下,花括号里面没有键值对时,定义的很有可能是集合
# 集合不同于列表和字典,集合不会以特定的顺序存储元素
dictionary = {"aaaa", "bbbb", "ccc"}
 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。