持续创作,加速成长!这是我参与「掘金日新计划 · 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"])
复制代码
但是我也不清楚这个key是否存在,总不能每次都要判断或者说加异常专门处理吧,有么有一种方法,key存在呢,正常获取,key不存在的话,返回一个空值或者默认值。get方法就应运而生,默认值是None。
dicts = {"a": 1, "b": 2, "c": 3, "d": 4}
print("dicts -->", dicts.get("c"))
print("dicts -->", dicts.get("c1"))
复制代码
有么有自定义默认值,类似pop方法那种,只有当这个key不存在,跳到到自定义的默认值呢。setdefault
方法,该方法也有局限性,还是没摆脱上面那种困境,只能算get方法的补充。
2 字典的遍历
for...in 字典
遍历的是字典的key。
dicts = {"a": 1, "b": 2, "c": 3, "d": 4}
for item in dicts:
print(item)
复制代码
通过dicts.values(),遍历获取所有的value值。
dicts = {"a": 1, "b": 2, "c": 3, "d": 4}
for item in dicts.values():
print(item)
复制代码
对于想获取字典里的每个键值对,字典.items(),你值得拥有。
dicts = {"a": 1, "b": 2, "c": 3, "d": 4}
for key, value in dicts.items():
print(f'{key} --> {value}')
复制代码
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():
。