首页 > 解决方案 > 如何检查对象是在键上还是在字典的值上?

问题描述

我试图了解检查对象是否在字典的键或字典的值中的最简单方法是什么。我试过使用.items()但没有结果。

现在我正在使用这个解决方案,但我想知道是否有更好的解决方案:

zdict = { 'a':1,'b':2,'c':3}
print(list(zdict.values()) + list(zdict.keys()))
'b' in list(zdict.values()) + list(zdict.keys())

标签: pythonpython-3.xdictionary

解决方案


停止从andlist返回的视图中不必要地创建对象。要检查一个对象是否是字典键,您只需使用, 来检查它是否在值中,您可以使用,因此将两者结合起来:.keys.valuessome_object in some_dictsome_object in some_dict.values()

some_object in some_dict or some_obect in some_dict.values()

这基本上将是一个完全线性的操作,但检查它是否在键中是恒定时间的,它是一个哈希查找,所以你应该首先检查它以利用短路行为。请注意,如果您使用list键,那么您将强制进行线性搜索。


推荐阅读