以下是說明(請耐心等待,這實際上是我嘗試用 Python 撰寫非常簡單的函式的第一周)。我發現的每個示例都使用了我的班級以前沒有使用過的東西。
“定義一個名為 的函式longest_word(list_of_words),該函式接受一個單詞串列,即['apple', 'orange', 'banana']回傳最長的單詞。如果有多個單詞并列最長,它將回傳第一個。
一種。例如,如果您像我們在下面的代碼中那樣呼叫該函式,您應該得到指示的輸出:
word_list = [ 'apple' , 'orange' , 'banana' ]
result = longest_word(word_list)
print(result)"
所以我在許多其他失敗的嘗試中嘗試了這個:
list_of_words = ['antman','spiderman','blackwidow','thor']
word_list_long = []
def longest_word(list_of_words):
for word in list_of_words:
if len(word) > len(word_list_long):
word.append(word_list)
len(word) != len(word_list_long)
return word_list
result = word_list_long
print(result)
結果是
[],預期的輸出是blackwidow
uj5u.com熱心網友回復:
評論解釋了每一行在做什么!
list_of_words = ['antman','spiderman','blackwidow','thor']
def longest_word(list_of_words):
longest = 0; #No Of Characters in longest word
longestword = "" #The Longest Word
for word in list_of_words: # For Loop to iterate through words
if len(word) > longest: #Check If the length of word is greater than current longest word
longest = len(word) #If So make the new longest length as length of the word
longestword = word # And make the longest word as the word
return longestword #Return The longest word
print(longest_word(list_of_words))
uj5u.com熱心網友回復:
我知道這是你的第一周編程,這可能是介紹這個的錯誤時間,但你可以用一行來完成同樣的事情functools.reduce
>>> from functools import reduce
>>> l = ["1", "12", "123", "1234", "123", "12", "1"]
>>> reduce(lambda x, y: x if len(x) > len(y) else y, l)
'1234'
functools.reduce(function, iterable[, initializer])
將兩個引數的函式從左到右累積應用于iterable的專案,以將iterable減少為單個值。例如,reduce(lambda x, y: x y, [1, 2, 3, 4, 5]) 計算 ((((1 2) 3) 4) 5)。左邊的引數 x 是累積值,右邊的引數 y 是迭代的更新值。如果存在可選初始化器,則在計算中將其放置在可迭代項之前,并在可迭代項為空時用作默認值。如果沒有給出初始化程式并且可迭代只包含一個專案,則回傳第一個專案。
此呼叫獲取串列并使用您提供的比較功能比較從左到右的兩個相鄰元素。在這里,我提供了一個簡單lamdba的回傳兩者中較長的一個。通過在串列的長度上連續回傳任意兩個元素中最長的元素,我回傳串列中最長的元素
uj5u.com熱心網友回復:
word_list = ['apple', 'orange', 'banana']
def longest_word(word_list):
return max(word_list, key=len)
print(longest_word(word_list))
這應該可以,這 1 行功能可以滿足您的一切需求。
uj5u.com熱心網友回復:
list_of_words = ['antman','spiderman','blackwidow','thor']
def longest_word(list_of_words):
longest_word = ''
for word in list_of_words:
if len(word) > len(longest_word):
longest_word = word
return (longest_word)
result = word_list_long(list_of_words)
print(result)
uj5u.com熱心網友回復:
以下將在串列中找到最長的單詞并將其回傳,或者在出現平局時回傳它們的串列:
def longest_words(words):
"""Return longest word or list of them if there's a tie."""
max_indices = []
max_len = len(words[0])
for i, length in ((i, len(word)) for i, word in enumerate(words) if len(word) >= max_len):
if length == max_len:
max_indices.append(i)
else:
max_len = length
max_indices = [i]
return words[max_indices[0]] if len(max_indices) < 2 else [words[i] for i in max_indices]
words = ['antman', 'spiderman', 'blackwidow', 'thor', 'submariner']
print(longest_words(words)) # -> ['blackwidow', 'submariner']
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/470720.html
上一篇:用字串替換串列值
