我有一个列表,当用户输入一个字符串时生成:像这样。它将采取每个单词并将其附加到列表中。搜索最长的字符串列表
我有一个名为max_l的变量,它查找列表中最长的字符串的长度。
我试图做这样的事情:
while max_l == len(mylist[x]):
print(mylist[x])
a=a+1
所以,它的意思是经过列表,每个项目与整数max_l比较。一旦找到该列表项目,就意味着打印它。它并没有。我究竟做错了什么?
我有一个列表,当用户输入一个字符串时生成:像这样。它将采取每个单词并将其附加到列表中。搜索最长的字符串列表
我有一个名为max_l的变量,它查找列表中最长的字符串的长度。
我试图做这样的事情:
while max_l == len(mylist[x]):
print(mylist[x])
a=a+1
所以,它的意思是经过列表,每个项目与整数max_l比较。一旦找到该列表项目,就意味着打印它。它并没有。我究竟做错了什么?
如果你要搜索的最长的字符串列表,你可以使用内置max()
功能:
myList = ['string', 'cat', 'mouse', 'gradient']
print max(myList, key=len)
'gradient'
max
需要一个“关键”参数,你可以指定功能(在这种情况下len
,另一个内置函数),它应用于myList中的每个项目。
在这种情况下,对于myList
中的每个字符串len(string)
返回的最大结果(长度)是您最长的字符串,并且由max
返回。
从max
文档字符串:
max(iterable[, key=func]) -> value
max(a, b, c, ...[, key=func]) -> value
With a single iterable argument, return its largest item.
With two or more arguments, return the largest argument.
从len
文档字符串:
len(object) -> integer
Return the number of items of a sequence or mapping.
生成列表从用户输入:
在回答您的通讯恩,我想我会补充一点。这是做这件事:
user = raw_input("Enter a string: ").split() # with python3.x you'd be using input instead of raw_input
Enter a string: Hello there sir and madam # user enters this string
print user
['Hello', 'there', 'sir', 'and', 'madam']
现在使用max:
print max(user, key=len)
'Hello' # since 'Hello' and 'madam' are both of length 5, max just returns the first one
什么是'x'? '了'? – jonrsharpe 2014-10-28 21:29:49
我不知道你在这里做什么,但最长的长度可以用'max(mylist,key = len)'来找到。 – 2014-10-28 21:34:39