उत्तर
मैं शायद लिखना चाहते हैं:
>>> lod = [{1: "a"}, {2: "b"}]
>>> any(1 in d for d in lod)
True
>>> any(3 in d for d in lod)
False
हालांकि अगर वहाँ इस सूची आप अपने डेटा संरचना पर पुनर्विचार करना चाह सकते हैं में dicts का एक बहुत होने जा रहे हैं। अगर यह वहां नहीं है
>>> 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
और enumerate
उपयोग करने के लिए है
यदि आप इससे बचना चाहते हैं, तो आप या तो अपवाद पकड़ सकते हैं या 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]
उपयोग any
एक जनरेटर के साथ समारोह:
>>> d = [{1: "a"}, {2: "b"}]
>>> any(1 in x for x in d)
True
any
फ़ंक्शन True
, अगर iterable
में कम से कम एक तत्व से पारित कर दिया करने के लिए इसे True
है। लेकिन आपको वास्तव में विचार करने की आवश्यकता है, आप एक dict
में सभी key: value
जोड़े क्यों नहीं कर रहे हैं?
parsedData=[]
dataRow={}
if not any(d['url'] == dataRow['url'] for d in self.parsedData):
self.parsedData.append(dataRow)
एकल 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
कहता है कि यह अस्तित्व में है, अगर कुछ है तो मैं अपनी अनुक्रमणिका/पहली व्यक्ति की अनुक्रमणिका कैसे प्राप्त कर सकता हूं? @DSM – user2057574
इस तरह: '[i i i, d in enumerate (lod) यदि d में 2] 'या' [(i, d) i, d में enumerate (lod) यदि 2 में d] यदि आप चाहते हैं पूरा निर्देश बाहर ... ' – dawg