我需要檢查某個字典中是否存在特定的鍵。我可以使用has_key?有沒有其他的方法來比較列表的項目與字典的關鍵。我有一個像...的列表[(3,4),(4,5)..] 我需要檢查(3,4)是否在字典中。列表元素與字典鍵之間的比較
回答
「正確」的方法是使用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
如何使用In運算符? – Shilpa 2010-07-19 06:41:07
查看其他答案和我的代碼片段。 – 2010-07-19 06:47:45
這樣的事情?
>>> 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"
如果我想檢查一下,如果一個關鍵詞在口述中可用或者沒有......如果不是......那麼將該關鍵字添加到詞典中......? – Shilpa 2010-07-19 06:34:24
這是一個新問題,但請看'setdefault()'方法。 http://docs.python.org/library/stdtypes.html?highlight=setdefault#dict.setdefault – 2010-07-19 06:36:26
如何更新method.I認爲,如果密鑰已經存在在字典中,它會把該密鑰的另一個值,所以我們通過更新方法得到多個條目。 – Shilpa 2010-07-19 06:40:03
dictionary.keys()
返回鍵列表 您就可以使用if (3,4) in d.keys()
沒有必要。應用於字典時的'in'運算符將查看字典的鍵。 – 2010-07-19 06:35:06
- 1. Python:列表中的變量與字典鍵之間的比較
- 2. 比較字典鍵的元組元素
- 3. 比較兩個元組列表中元素之間的元素
- 4. Ruby 1.8與列表元素比較1.9之間的區別
- 5. 比較列表與詞典?
- 6. 比較列表與詞典
- 7. 將列表與字典進行比較
- 8. 解碼比較列表與字典
- 9. 將字典的鍵與列表進行比較
- 10. 比較字典列表
- 11. 比較列表和字典
- 12. 2個列表之間的通用元素比較
- 13. 比較兩個列表之間的元素 - Haskell
- 14. 將列表元素與謂詞比較
- 15. 比較兩個列表元素與LINQ
- 16. 比較列表元素
- 17. 比較字符串列表元素python
- 18. 字典列表和比較列表python
- 19. 夫特:比較字典鍵
- 20. 如何比較字典的值(列表)與單獨的列表?
- 21. 如何將字符串與字典元素進行比較?
- 22. 獲取按字典鍵排序的字典元素列表
- 23. 比較eval和字典列表的關鍵字
- 24. 比較字典中的列表的值
- 25. 比較龐大的python字典列表
- 26. 如何:比較列表中的字典
- 27. 比較Python列表中的字典
- 28. Python - 將列表元素與「鄰居」元素進行比較
- 29. 比較元組/字典python
- 30. Python:詞典的列表。計算基於字典鍵的元素
'對象的has_key()'在更高版本的Python 2的棄用,在Python 3,使用邁克爾·安德森的解決方案已被刪除。 – 2010-07-19 06:33:43