我刚开始学习编程。我有一个字符串列表,现在需要打印出最长的那个。 所以我首先想要打印出每个元素的长度。我试过像这样的代码:
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)
如果您想测量序列(列表、元组等)中所有元素的长度,并将这些长度返回到另一个序列(列表、元组等)中,请按照以下步骤操作:
简述:
list_of_lengths = (lambda x:[len(i) for i in x])(lst)
更详细的解释(从括号内向外移动)
[len(i) for i in x]
(lambda x:[len(i) for i in x])
(lambda x:[len(i) for i in x])(lst)
list_of_lengths = (lambda x:[len(i) for i in x])(lst)
>>> sorted(['longest','long','longer'],key=len)[-1]
'longest'
更新:SilentGhost的解决方案更好。
根据长度找出最大值
print max(["qsf","qsqsdqsd","qs"], key = len)
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]
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))
def len_words(l:list):
len_list = list(map(len,l))
return len_list
接下来,您可以调用max函数在len_words上,以找到列表中字符串的最大值。
max(len_words(l))