2009-10-27 55 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))