अजगर 2.6 या बेहतर में,
next((i for i, sublist in enumerate(nested_list) if "a" in sublist), -1)
जैसे यह सोचते हैं आप -1
परिणाम चाहते हैं यदि 'a'
किसी भी उपन्यास में मौजूद नहीं है।
बेशक यह पाइथन के पुराने संस्करणों में भी किया जा सकता है, लेकिन काफी आसान नहीं है, और चूंकि आप जो पाइथन संस्करणों में रुचि रखते हैं, उन्हें निर्दिष्ट नहीं करते हैं, मुझे लगता है कि नवीनतम उत्पादन का उपयोग करना सबसे अच्छा है- ठोस एक (यदि आपको पाइथन के अन्य पुराने संस्करणों को निर्दिष्ट करने की आवश्यकता है तो बस अपना उत्तर संपादित करें)।
संपादित करें: प्रति अनुरोध, मुझे यह बताने की कोशिश करें कि यह कैसे काम करता है। मैं (2.6 में नया) अंतर्निर्मित फ़ंक्शन next का उपयोग कर रहा हूं, विशेष रूप से मैं next(iterator, default)
पर कॉल कर रहा हूं: इटरेटर का अगला आइटम लौटाता है (और इस प्रकार पहला, क्योंकि यह पहली बार है जब हम उस इटरेटर को आगे बढ़ा रहे हैं), या डिफ़ॉल्ट मान अगर इटरेटर समाप्त हो गया है (जिसका अर्थ है "खाली" अगर यह कभी भी इसे उन्नत करने से पहले समाप्त हो जाता है ;-)। डिफ़ॉल्ट रूप से स्पष्ट है कि -1
और "a
किसी भी उपन्यास में मौजूद नहीं है", जिसका अर्थ है कि इस मामले में "इटेटरेटर खाली है" जैसा ही है। फिर इटरेटर पर
आइए नज़र:
(i for i, sublist in enumerate(nested_list) if "a" in sublist)
(गोल) कोष्ठकों और for
और if
कीवर्ड इसका मतलब यह एक जनरेटर अभिव्यक्ति, यह भी genexp के रूप में संक्षिप्तता के लिए जाना जाता है। i
(सूचकांक) और sublist
(उस सूचकांक पर आइटम) enumerate(nested_list)
से अधिक अग्रिम - अगर हमारे पास enumerate
नहीं था तो हम सूचकांक का ट्रैक नहीं रखेंगे, लेकिन इस मामले में हमें इसकी आवश्यकता है। उन्हें केवल तभी माना जाता है जब if
खंड संतुष्ट होता है, यानी, जब आप जिस तत्व को खोज रहे हैं वह वर्तमान उपन्यास में मौजूद है।
तो यह जीनएक्सपी एक समय में, सूचकांक के प्रत्येक मूल्य का उत्पादन करता है जैसे कि उस सूचकांक में उपन्यास "a" in sublist
स्थिति को संतुष्ट करता है। चूंकि हम इसे next
के अंदर उपयोग कर रहे हैं, हम केवल पहली ऐसी अनुक्रमणिका लेते हैं।
ओपी को यह सोचने के लिए उचित ठहराया जा सकता है कि तीन या चार वर्णों में यह सब एक जादुई बिल्टिन काम करेगा - और इसलिए, यह बहुत विशिष्ट आवश्यकता के लिए होगा, जो मुझे विश्वास है कि मैं पहले कभी नहीं मिला पाइथन के उपयोग के दस वर्षों से अधिक; हालांकि, अगर इस तरह की प्रत्येक विशिष्ट आवश्यकता के पास अपनी खुद की विशिष्ट विशिष्टता थी तो भाषा और बिल्टिन टैक्स कोड से बड़े होंगे।इसके बजाए, पाइथन कई निचले स्तर के "लेगो ईंटों" और स्पष्ट रूप से (और उचित रूप से संक्षेप में) को एक साथ स्नैप करने के लिए कुछ आसान तरीका प्रदान करता है, जो कि ओपी की तरह विशिष्ट आवश्यकताओं की एक संयोजन-विविध विविधता के समाधान को व्यक्त करता है।
हाँ: इस sublist देता है, जबकि ओ पी निर्दिष्ट वे कहते हैं कि sublist से INDEX चाहते हैं, के रूप में मैं अपने जवाब में लौट आते हैं। –