11
A
回答
32
我可能會寫:
>>> lod = [{1: "a"}, {2: "b"}]
>>> any(1 in d for d in lod)
True
>>> any(3 in d for d in lod)
False
但如果有將是一個很多類型的字典在此列表中,你可能要重新考慮你的數據結構。
如果你想索引和/或其中第一個找到匹配的字典,一個方法是使用next
和enumerate
:
>>> next(i for i,d in enumerate(lod) if 1 in d)
0
>>> next(d for i,d in enumerate(lod) if 1 in d)
{1: 'a'}
>>> next((i,d) for i,d in enumerate(lod) if 1 in d)
(0, {1: 'a'})
這將提高StopIteration
如果它不存在:
>>> next(i for i,d in enumerate(lod) if 3 in d)
Traceback (most recent call last):
File "<ipython-input-107-1f0737b2eae0>", line 1, in <module>
next(i for i,d in enumerate(lod) if 3 in d)
StopIteration
如果你想避免這種情況,你可以捕捉異常或通過next
默認值,如None
:
>>> next((i for i,d in enumerate(lod) if 3 in d), None)
>>>
如由@drewk的評論中指出,如果你想獲得多個指標在多個值的情況下返回,您可以使用列表理解:
>>> lod = [{1: "a"}, {2: "b"}, {2: "c"}]
>>> [i for i,d in enumerate(lod) if 2 in d]
[1, 2]
2
使用any
功能與發電機:
>>> d = [{1: "a"}, {2: "b"}]
>>> any(1 in x for x in d)
True
any
函數返回True
,如果在iterable
的至少一種元素傳遞給它是True
。但是你真的需要考慮,爲什麼你沒有把所有的key: value
組合在一個單獨的dict
?
1
parsedData=[]
dataRow={}
if not any(d['url'] == dataRow['url'] for d in self.parsedData):
self.parsedData.append(dataRow)
0
在單dictoray看到我們「在」關鍵字使用:
key in dic_instance
要檢查字典的名單,通過詞典列表,然後使用「任意」功能重複,因此,如果關鍵在任何發現的字典,它不會進一步迭代列表。
dic_list = [{1: "a"}, {2: "b"}]
any(2 in d for d in dic_list)
True
any(4 in d for d in dic_list)
False
相關問題
- 1. 檢查列/密鑰是否存在?
- 2. 如何檢查散列中的密鑰是否存在(redis)?
- 3. 檢查NSDictionary中是否存在密鑰
- 4. 檢查NSUserDefaults中是否存在密鑰
- 5. 檢查密鑰是否存在於散列表中JSP Struts 2
- 6. 檢查列表是否包含密鑰
- 7. 檢查是否存在YAML密鑰
- 8. 檢查JSON密鑰是否存在
- 9. nodejs髒檢查是否存在密鑰
- 10. 如何檢查記錄中的密鑰是否存在?
- 11. 如何檢查密鑰是否在NHibernate中未保存的值
- 12. 檢查是否存在其他表中的密鑰
- 13. 如何檢查密鑰庫中是否存在證書
- 14. 如何檢查密鑰是否存在於Ruby哈希中?
- 15. 如何檢查plist中是否存在密鑰?
- 16. 如何檢查** kwargs中是否存在密鑰?
- 17. 如何檢查Couchbase中是否存在密鑰?
- 18. vuejs如何檢查數組中是否存在密鑰/ ID
- 19. Javascript:如何檢查密鑰是否存在並返回密鑰的值
- 20. 如何檢查密鑰和值是否已經存在於散列表
- 21. 如何檢查本地存儲中的密鑰是否有值?
- 22. FFMPEG python檢查是否存在字典密鑰
- 23. Rally Rest Api - DynamicJsonObject如何檢查密鑰是否存在
- 24. 如何檢查列表中是否存在元素python
- 25. Python如何檢查列表中是否存在元素?
- 26. 如何檢查PHP中的哈希表中存在的密鑰?
- 27. 檢查python列表中是否存在列表
- 28. 字典中用於檢查密鑰是否存在的邏輯
- 29. 檢查python中是否存在sql表
- 30. 檢查Flask中request.args中是否存在密鑰
說它確實存在,如果有幾個我怎麼能得到它的索引/第一個的索引? @DSM – user2057574 2013-02-09 20:25:04
像這樣:'[我爲我,我在枚舉(lod),如果2在d]''或'[(我,d)爲我,d在枚舉(lod)如果2在d]'如果你想整個字典... ' – dawg 2013-02-09 20:28:57