2009-10-27 57 views
4

我剛剛開始編程。我有一些字符串的列表,現在我需要打印最大(長度)的字符串。 所以我首先想打印元素的長度。我正在嘗試這樣的事情:如何查找列表中元素的長度?

l = ("xxxxxxxxx", "yyyy","zz") 

for i in range(len(l): 

那麼我該怎麼做呢?

+1

,這不是一個列表,而是一組。 – jldupont 2009-10-27 09:51:48

+3

其實它是一個元組。 – 2009-10-27 09:54:01

+1

-1:片段甚至不會按原樣工作。語法錯誤。請修復這個片段,至少它可以運行。 – 2009-10-27 09:58:34

回答

14
l = ("xxxxxxxxx", "yyyy","zz") 
print(max(l, key=len)) 

首先你沒有一個列表,你有一個元組。然而,這個代碼將適用於任何序列。列表和元組都是序列(以及字符串,集合等)。因此,max函數採用一個key參數,即用於可迭代的元素進行排序。所以,從l的所有元素將被選中最長的一個。

4

要打印長度的元素:

elements = ["xxxxxx", "yyy", "z"] 
for element in elements: 
    print len(element) 

我建議你讀了一些輔導材料,例如http://docs.python.org/tutorial/

+2

問題要求打印最大的字符串。 – 2009-10-27 09:58:18

+2

@Amit:這個問題指出:「因此,我首先想只是打印元素的長度。」 – 2009-10-27 10:08:06

1

下面的代碼將在集打印最大的字符串:

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] 
+0

爲什麼是-1?我給出了「現在我需要打印最大(長度)」的答案。 – 2009-10-27 10:11:08

+0

雖然我敢肯定,你的解決方案的工作,它不是關於如何編寫Python代碼一個很好的例子。對於有人要求關於Python的幫助,這根本沒有幫助。 – truppo 2009-10-27 11:06:18

+0

我可能在那裏寫了C。你推薦使用更多的Python結構,比如'max ... key'嗎? – 2009-10-27 11:09:56

2

只是根據長度要求最大

print max(["qsf","qsqsdqsd","qs"], key = len)

+1

雖然有效,但初學者有點微妙。 – 2009-10-27 10:08:49

2
>>> sorted(['longest','long','longer'],key=len)[-1] 
'longest' 

更新:SilentGhost的解決方案更好。

0

此代碼映射在列表中的「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))