python笔记 字典元素的获取和遍历

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第16天,点击查看活动详情

0 环境

  • 编辑器:idea或vscode
  • 系统版本:windows10
  • python版本:3.9.6

1 字典单个元素读取

当key存在时,正常读取,当key不存在时,读取失败,会报错。

dicts = {"a": 1, "b": 2, "c": 3, "d": 4}
print("dicts -->", dicts["c"])
print("dicts -->", dicts["c1"])
复制代码

image.png

但是我也不清楚这个key是否存在,总不能每次都要判断或者说加异常专门处理吧,有么有一种方法,key存在呢,正常获取,key不存在的话,返回一个空值或者默认值。get方法就应运而生,默认值是None。

dicts = {"a": 1, "b": 2, "c": 3, "d": 4}
print("dicts -->", dicts.get("c"))
print("dicts -->", dicts.get("c1"))
复制代码

image.png

有么有自定义默认值,类似pop方法那种,只有当这个key不存在,跳到到自定义的默认值呢。setdefault方法,该方法也有局限性,还是没摆脱上面那种困境,只能算get方法的补充。

image.png

2 字典的遍历

for...in 字典遍历的是字典的key。

dicts = {"a": 1, "b": 2, "c": 3, "d": 4}
for item in dicts:
    print(item)
复制代码

image.png

通过dicts.values(),遍历获取所有的value值。

dicts = {"a": 1, "b": 2, "c": 3, "d": 4}
for item in dicts.values():
    print(item)
复制代码

image.png

对于想获取字典里的每个键值对,字典.items(),你值得拥有。

dicts = {"a": 1, "b": 2, "c": 3, "d": 4}
for key, value in dicts.items():
    print(f'{key} --> {value}')
复制代码

image.png

3 总结

单个元素的获取,无法判断它的键存在,并且不想专门对其处理,可以用get,字典中不存在该键,返回None,或者在字典中,setdefault方法自定义默认值,当然这种不太常用,还是get的用的多点。对于字典的遍历,python3中keys()、values()、items()返回的是一个可迭代对象,也就说不会单独复制一份内存,而python2呢,返回的则是一个列表,需要单独复制一份内存,对应获取key、value、键值对。还有一点需要补充的就是,for...in 字典 就等于 for...in 字典.keys(),也就是可以忽略.keys(),我们直接通过for...in遍历字典,默认输出的就是key。还有就是字典.items(),也是可以获取单独的key或value的,只要把对应的key或value,用下划线取点即可。例如:for _, value in dicts.items():

猜你喜欢

转载自juejin.im/post/7107046060874268680
今日推荐