开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第13天,点击查看活动详情
书接上文,前面几篇文章我们介绍了python字典的组成,取值获取,删除等方法,今天我们最后来说字典的其他方法。
遍历字典键
迭代字典键和dict.keys()方法的一种简单方法是简单地调用iter(),它返回字典中键的可迭代对象。dict.keys() 这基本上执行与大多数时间相同的任务:
dictionary = dict(name="Johnny", age=153, favouriteDrink="tea")
dictKeys = iter(dictionary)
for x in dictKeys:
print(x)
# Returns name age favouriteDrink
iter和,之间的区别dict.keys()是您不能在调用 iter 后更改密钥。为了向您展示我的意思,下面我在调用后添加一个新键iter并尝试使用循环进行迭代for。这会产生一个错误,因为键在迭代过程中发生了变化:
dictionary = dict(name="Johnny", age=153, favouriteDrink="tea")
dictKeys = iter(dictionary)
dictionary['birthday'] = "Monday"
for x in dictKeys:
print(x)
# RuntimeError: dictionary changed size during iteration
同时,不会为 产生错误dict.keys(),因为dict.keys()它产生了一个视图对象,它是字典内容的动态实时视图:
dictionary = dict(name="Johnny", age=153, favouriteDrink="tea")
dictKeys = dictionary.keys()
dictionary['birthday'] = "Monday"
for x in dictKeys:
print(x)
# Returns name age favouriteDrink birthday
以相反顺序迭代字典键
您可能会发现自己使用的另一个有用的功能是reversed。这个函数接受字典键并以相反的顺序返回一个可迭代的列表。与 一样iter,如果您尝试在以形式迭代字典的同时更新字典,则会产生错误reversed。
反转后,可以重复按键以执行您选择的某些功能。这是一个示例,它以相反的顺序返回每个键的字符串值dictionary:
dictionary = dict(name="Johnny", age=153, favouriteDrink="tea")
reversedDict = reversed(dictionary)
for x in reversedDict:
print(x)
# Returns favouriteDrink age name
检查 Python 字典中的成员资格
就像 Python 中的集合和其他数据集合一样,我们也可以检查某些东西是否作为键存在于字典中。为此,我们可以使用inornot in运算符。请记住,字典成员资格是通过键而不是值来检查的。
dictionary = { "name" : "Johnny", "age" : 152 }
print('name' in dictionary)
# True
print('name' not in dictionary)
# False