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

Python: शब्दों की सूची से सबसे लंबे शब्द की लंबाई निकालना

Python में शब्दों (स्ट्रिंग्स) की सूची से सबसे लंबे शब्द की लंबाई निकालना। max() फ़ंक्शन के साथ key=len सबसे सरल तरीका है।

उदाहरण

my_list = ["ab", "abc", "abcd", "abcde"]
print("मूल सूची:", my_list)

# विधि 1: max() + key=len (सबसे सरल, पायथनिक)
max_length = len(max(my_list, key=len))
print(f"सबसे लंबे शब्द की लंबाई: {max_length}")  # 5

# सबसे लंबा शब्द भी प्राप्त करें
longest_word = max(my_list, key=len)
print(f"सबसे लंबा शब्द: '{longest_word}'")  # abcde

# विधि 2: लूप (मूल लेख का दृष्टिकोण)
def find_longest_length(my_list):
    if not my_list:
        return 0
    max_length = len(my_list[0])
    for element in my_list:
        if len(element) > max_length:
            max_length = len(element)
    return max_length

print(f"लूप से: {find_longest_length(my_list)}")

# विधि 3: map() + max()
lengths = list(map(len, my_list))
print(f"map+max: {max(lengths)}")

# विधि 4: जनरेटर एक्सप्रेशन
print(f"जनरेटर: {max(len(w) for w in my_list)}")

आउटपुट

मूल सूची: ['ab', 'abc', 'abcd', 'abcde']
सबसे लंबे शब्द की लंबाई: 5
सबसे लंबा शब्द: 'abcde'
लूप से: 5
map+max: 5
जनरेटर: 5

किनारे के मामले

def safe_longest_length(words):
    """सुरक्षित संस्करण: खाली सूची, गैर-स्ट्रिंग हैंडलिंग"""
    if not words:
        return 0, None
    
    # केवल स्ट्रिंग्स पर विचार करें
    str_words = [w for w in words if isinstance(w, str)]
    if not str_words:
        return 0, None
    
    longest = max(str_words, key=len)
    return len(longest), longest

# टेस्ट केस
test_cases = [
    ["ab", "abc", "abcd", "abcde"],
    [],
    [1, 2, 3],                    # गैर-स्ट्रिंग
    ["a", 123, "abc", None],      # मिश्रित
    ["", "a", "ab"],              # खाली स्ट्रिंग
    ["same", "same", "same"],     # समान लंबाई
]

for case in test_cases:
    length, word = safe_longest_length(case)
    print(f"{case} → लंबाई: {length}, शब्द: '{word}'")

आउटपुट

['ab', 'abc', 'abcd', 'abcde'] → लंबाई: 5, शब्द: 'abcde'
[] → लंबाई: 0, शब्द: None
[1, 2, 3] → लंबाई: 0, शब्द: None
['a', 123, 'abc', None] → लंबाई: 3, शब्द: 'abc'
['', 'a', 'ab'] → लंबाई: 2, शब्द: 'ab'
['same', 'same', 'same'] → लंबाई: 4, शब्द: 'same'

सभी सबसे लंबे शब्द प्राप्त करना (टाई होने पर)

def get_all_longest(words):
    """सभी सबसे लंबे शब्द लौटाएं"""
    if not words:
        return []
    str_words = [w for w in words if isinstance(w, str)]
    if not str_words:
        return []
    max_len = max(len(w) for w in str_words)
    return [w for w in str_words if len(w) == max_len]

print(get_all_longest(["cat", "dog", "elephant", "hippo", "ant"]))  # ['elephant']
print(get_all_longest(["cat", "dog", "bird", "fish"]))              # ['bird', 'fish'] (दोनों 4)

Pandas Series में उपयोग

import pandas as pd

s = pd.Series(["ab", "abc", "abcd", "abcde", None, 123])
print("Series:\n", s)

# स्ट्रिंग्स पर फोकस
str_series = s.dropna().astype(str)
max_len = str_series.str.len().max()
longest_words = str_series[str_series.str.len() == max_len]

print(f"\nअधिकतम लंबाई: {max_len}")
print(f"सबसे लंबे शब्द:\n{longest_words}")

आउटपुट

Series:
 0       ab
 1      abc
 2     abcd
 3    abcde
 4     None
 5      123
dtype: object

अधिकतम लंबाई: 5
सबसे लंबे शब्द:
 3    abcde
dtype: object

सारांश

विधिकोडनोट
max + key=lenmax(words, key=len)सबसे पायथनिक, शब्द भी देता है
max + map(len)max(map(len, words))केवल लंबाई चाहिए तो
जनरेटरmax(len(w) for w in words)मेमोरी कुशल
लूपमैन्युअलशैक्षिक, नियंत्रण अधिक
Pandas str.len()s.str.len().max()Series के लिए
  1. - पायथन में वर्ड ऐरे के सबसे लंबे प्रीफिक्स सीक्वेंस की लंबाई खोजने का प्रोग्राम

    मान लीजिए हमारे पास w नामक शब्दों की एक सूची है, जिसमें लोअरकेस स्ट्रिंग्स हैं। हमें w के सबसे लंबे सीक्वेंस की लंबाई ढूंढनी है जहां प्रत्येक पिछला शब्द अगले शब्द का प्रीफिक्स है और अगले शब्द में केवल एक नया कैरेक्टर जुड़ा हुआ है। उदाहरण के लिए, यदि इनपुट है w = [pqr, pq, m, mn, pqrs], तो आउटपुट 3 ह

  1. पायथन में n-ary ट्री में सबसे लंबे पथ की लंबाई खोजने का प्रोग्राम पायथन में n-ary ट्री में सबसे लंबे पथ की लंबाई खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक एज लिस्ट है जहां प्रत्येक आइटम (u, v) रखता है जो दर्शाता है कि u, v का पैरेंट है। हमें ट्री में सबसे लंबे पथ की लंबाई ढूंढनी है। पथ की लंबाई 1 + उस पथ में नोड्स की संख्या है। उदाहरण के लिए, यदि इनपुट है: तो आउटपुट 5 होगा, क्योंकि पथ [1, 4, 5, 7] है, कुल 4 नोड्स हैं, इसलिए पथ

  1. - पायथन प्रोग्राम: लिस्ट से डुप्लिकेट एलिमेंट्स हटाना

    एक लिस्ट दी गई है जिसमें डुप्लिकेट एलिमेंट हैं, हमारा कार्य एक और लिस्ट बनाना है जिसमें बिना डुप्लिकेट के एलिमेंट्स हों।उदाहरणA::[2, 3, 4, 3, 4, 6, 78, 90] Output::[2, 3, 4, 6, 78, 90]एल्गोरिदमचरण 1: एक लिस्ट बनाएं। चरण 2: एक नई लिस्ट बनाएं जो खाली हो। चरण 3: लिस्ट में हर एलिमेंट को ट्रैवर्स करें। च