我需要检查某个词典中是否存在特定键。我可以使用has_key ??有没有其他方法可以将列表中的项目与字典键进行比较。
我有一个像... [(3,4),(4,5)..]的列表 我需要检查字典中是否有(3,4)。
答案 0 :(得分:4)
这样的东西?
>>> d = { (1,3):"foo", (2,6):"bar" }
>>> print (1,3) in d
True
>>> print (1,4) in d
False
>>> L = [ (1,3), (1,4), (15) ]
>>> print [ x in d for x in L ]
[True, False, False]
如果要添加缺失的条目,则需要显式循环
for x in L:
if x not in d:
d[x]="something"
答案 1 :(得分:1)
“正确”的方式是使用in
运算符,就像其他答案所提到的那样。这适用于任何可迭代的东西,当你可以通过散列(如字典和集合)查找内容时,你可以获得一些速度提升。还有一种较旧的方法,仅适用于has_key
方法的词典。我通常不会在这些日子里看到它,它也会慢一些(虽然不是很多)。
>>> timeit.timeit('f = {(1,2) : "Foo"}; f.has_key((1,2))')
0.27945899963378906
>>> timeit.timeit('f = {(1,2) : "Foo"}; (1,2) in f')
0.22165989875793457
答案 2 :(得分:0)
dictionary.keys()
返回键列表
然后,您可以使用if (3,4) in d.keys()