列表元素与字典键之间的比较

时间:2010-07-19 06:19:31

标签: python dictionary

我需要检查某个词典中是否存在特定键。我可以使用has_key ??有没有其他方法可以将列表中的项目与字典键进行比较。

我有一个像... [(3,4),(4,5)..]的列表 我需要检查字典中是否有(3,4)。

3 个答案:

答案 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()

相关问题