Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में नेस्टेड सूची में अधिकतम लंबाई वाली सब-सूची खोजें

समस्या विवरण

नेस्टेड सूची (सूची की सूची) दी गई है, उस सब-सूची को खोजें जिसकी लंबाई सबसे अधिक है, और उसकी लंबाई प्रिंट करें।

इनपुट

listA = [[1,2], [2,45,6,7], [11,65,2]]

आउटपुट

Longest List and its length: ([2, 45, 6, 7], 4)

विधि 1: lambda और map के साथ max()

def longest(lst):
    longest_list = max(lst, key=lambda i: len(i))
    max_length = max(map(len, lst))
    return longest_list, max_length

listA = [[1,2], [2,45,6,7], [11,65,2]]
print("Longest List and its length:\n", longest(listA))

विधि 2: len और max (लूप)

def longest(lst):
    max_length = max(len(x) for x in lst)
    longest_list = []
    for sublist in lst:
        if len(sublist) == max_length:
            longest_list = sublist
            break  # पहली मिली हुई
    return longest_list, max_length

विधि 3: map() फ़ंक्शन

def longest(lst):
    max_length = max(map(len, lst))
    longest_list = next(sublist for sublist in lst if len(sublist) == max_length)
    return longest_list, max_length

आउटपुट (सभी)

Longest List and its length: ([2, 45, 6, 7], 4)

तुलना

विधिपठनीयतादक्षतानोट
lambda + maxउच्चO(n)सबसे पायथनिक
जनरेटर + maxउच्चO(n)मेमोरी कुशल
map + maxमध्यमO(n)फंक्शनल शैली
लूपकमO(n)शुरुआती के लिए स्पष्ट

नोट: यदि एक से अधिक सब-सूचियों की समान अधिकतम लंबाई हो, तो max() पहली वाली लौटाता है। सभी चाहिए तो लिस्ट कॉम्प्रिहेंशन उपयोग करें: [s for s in lst if len(s) == max_len]।

  1. - पायथन में अधिकतम अंतर वाला युग्म खोजें

    डेटा विश्लेषण कई तरह की चुनौतियां पेश कर सकता है। इस लेख में हम संख्याओं को तत्वों के रूप में एक सूची लेंगे। फिर हम सूची में तत्वों के ऐसे युग्म ढूंढेंगे जिनके बीच मान में अधिकतम अंतर हो। nlargest के साथ यहां दृष्टिकोण पहले तत्वों के सभी संभावित संयोजन ढूंढना है और फिर दूसरे तत्व को पहले से घटाना ह

  1. - Python में अधिकतम लंबाई स्नेक अनुक्रम ढूंढना

    मान लीजिए हमारे पास संख्याओं का एक ग्रिड है; हमें एक स्नेक अनुक्रम ढूंढना है और उसे वापस करना है। यदि एकाधिक स्नेक अनुक्रम हैं, तो केवल एक वापस करें। जैसा कि हम जानते हैं एक स्नेक अनुक्रम ग्रिड में आसन्न संख्याओं का उपयोग करके बनाया जाता है ताकि प्रत्येक संख्या के लिए, दाईं ओर की संख्या या उसके नीचे

  1. - पायथन में दी गई नेस्टेड सूची में अधिकतम मान वाली उपसूची ढूंढें

    एक सूची में अन्य सूचियां इसके तत्वों के रूप में हो सकती हैं। इस लेख में हम दी गई सूची में मौजूद उपसूची को ढूंढना चाहते हैं जिसमें अधिकतम मान हो। max और lambda के साथ max और lambda फ़ंक्शन एक साथ उस उपसूची को दे सकते हैं जिसमें अधिकतम मान हो। उदाहरण listA = [[Mon, 90], [Tue, 32], [Wed, 120]] # lambd