我剛剛開始編程。我有一些字符串的列表,現在我需要打印最大(長度)的字符串。 所以我首先想打印元素的長度。我正在嘗試這樣的事情:如何查找列表中元素的長度?
l = ("xxxxxxxxx", "yyyy","zz")
for i in range(len(l):
那麼我該怎麼做呢?
我剛剛開始編程。我有一些字符串的列表,現在我需要打印最大(長度)的字符串。 所以我首先想打印元素的長度。我正在嘗試這樣的事情:如何查找列表中元素的長度?
l = ("xxxxxxxxx", "yyyy","zz")
for i in range(len(l):
那麼我該怎麼做呢?
l = ("xxxxxxxxx", "yyyy","zz")
print(max(l, key=len))
首先你沒有一個列表,你有一個元組。然而,這個代碼將適用於任何序列。列表和元組都是序列(以及字符串,集合等)。因此,max
函數採用一個key
參數,即用於可迭代的元素進行排序。所以,從l
的所有元素將被選中最長的一個。
要打印長度的元素:
elements = ["xxxxxx", "yyy", "z"]
for element in elements:
print len(element)
我建議你讀了一些輔導材料,例如http://docs.python.org/tutorial/
問題要求打印最大的字符串。 – 2009-10-27 09:58:18
@Amit:這個問題指出:「因此,我首先想只是打印元素的長度。」 – 2009-10-27 10:08:06
下面的代碼將在集打印最大的字符串:
l = ["abcdev", "xx","abcedeerer"]
len_0 = len(l[0])
pos = 0
for i in range(0,len(l)):
if len(l[i]) > len_0:
pos = i
print l[pos]
爲什麼是-1?我給出了「現在我需要打印最大(長度)」的答案。 – 2009-10-27 10:11:08
雖然我敢肯定,你的解決方案的工作,它不是關於如何編寫Python代碼一個很好的例子。對於有人要求關於Python的幫助,這根本沒有幫助。 – truppo 2009-10-27 11:06:18
我可能在那裏寫了C。你推薦使用更多的Python結構,比如'max ... key'嗎? – 2009-10-27 11:09:56
只是根據長度要求最大
print max(["qsf","qsqsdqsd","qs"], key = len)
雖然有效,但初學者有點微妙。 – 2009-10-27 10:08:49
>>> sorted(['longest','long','longer'],key=len)[-1]
'longest'
更新:SilentGhost的解決方案更好。
此代碼映射在列表中的「LEN」功能,獲取包含每個項目的長度另一份清單。
mylist = ("xxxxxxxxx", "yyyy","zz")
len_mylist = map(len, mylist)
max_position = len_mylist.index(max(len_mylist))
my_item = mylist[max_position]
print('The largest item of my list is: ' + my_item)
print('located at position: ' + str(max_position))
,這不是一個列表,而是一組。 – jldupont 2009-10-27 09:51:48
其實它是一個元組。 – 2009-10-27 09:54:01
-1:片段甚至不會按原樣工作。語法錯誤。請修復這個片段,至少它可以運行。 – 2009-10-27 09:58:34