如何用Pythonic的方式检查列表中的任意一个元素是否是字典中的键?
例如,我有一个水果列表:
fruits = ['apples', 'bananas', 'pears']
我想检查我的字典中是否有任何水果作为键,例如:
fruit_dict1 = {'apples': 4, 'oranges': 3, 'dragonfruit': 4} returns True
fruit_dict2 = {'oranges': 3, 'dragonfruit': 9, 'pineapples': 4} returns False
到目前为止,我已经做了:
def fruit_checker(list, dict):
for fruit in list:
if fruit in dict:
return True
return False
在字典中查找水果就感觉有些奇怪,但似乎 "in" 只对字典的键进行搜索。 "in" 如何与不同类型一起工作?
in
与字典一起时感觉奇怪,即使它确实做了你想要的事情? - DeepSpace__contains__
、__iter__
或__getitem__
,那么in
运算符应该可以工作。具体实现取决于实现方式。对于dict
,__contains__
返回 True 如果传递的值在键中。 - Alok Singhal