मैं एक ऐसा फ़ंक्शन बना रहा था जो किसी सूची से सबसे लंबा स्ट्रिंग मान देता है। मेरा कोड तब काम करता है जब अधिकांश पात्रों के साथ केवल एक स्ट्रिंग होती है। मैंने इसे सबसे लंबे समय तक तारों को प्रिंट करने की कोशिश की, यदि एक से अधिक थे, और मैं नहीं चाहता कि उन्हें दोहराया जाए। जब मैं इसे चलाता हूं, तो यह केवल 'हैलो' देता है, जबकि मैं इसे 'ओमान' और 'योलू' वापस लौटना चाहता हूं। मुझे लगता है कि समस्या if item not list:
लाइन में है, लेकिन मैंने सब कुछ करने की कोशिश की है और यह काम नहीं करता है।सूची से सबसे लंबे तार
stringlist = ['hi', 'hello', 'hey','ohman', 'yoloo', 'hello']
#maxlength = max([len(s) for s in stringlist])
maxlength = max(len(s) for s in stringlist) # omitting the brackets causes max
# to operate on an iterable, instead
# of first constructing a full list
# in memory, which is more efficient
एक छोटी सी स्पष्टीकरण:
list = ['hi', 'hello', 'hey','ohman', 'yoloo', 'hello']
def length(lists):
a = 0
answer = ''
for item in lists:
x = len(item)
if x > a:
a = x
answer = item
elif x == a:
if item not in list:
answer = answer + ' ' + item
return answer
print length(list)
मुझे लगता है कि ओपी उन सभी तारों को चाहता है जिनमें अधिकतम लंबाई हो, सभी तारों में अधिकतम लंबाई नहीं। – DSM
@DSM, आह डर्न। मैंने सवाल गलत तरीके से पढ़ा। –
बस अंत में लेन (ओं) == अधिकतम लम्बाई] 'स्ट्रिंगलिस्ट में एस के लिए जोड़ें' और आप सुनहरे –