如何查找列表中元素的长度?

8 投票
8 回答
94876 浏览
提问于 2025-04-15 15:24

我刚开始学习编程。我有一个字符串的列表,现在我想打印出最长的那个字符串。
所以我首先想打印出每个字符串的长度。我试着这样做:

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

for i in range(len(l)):

那我该怎么做呢?

8 个回答

5

如果你在这里是因为想要测量一个序列(比如列表、元组等)中所有元素的长度,并把这些长度放到另一个序列(列表、元组等)里,可以这样做:

简而言之

list_of_lengths = (lambda x:[len(i) for i in x])(lst)

详细解释(从内到外的括号内容)

  1. 我们遍历列表,使用Python内置的len()函数来获取每个元素的长度。
[len(i) for i in x]
  1. 创建一个临时函数,把上一步的循环操作封装起来,这样任何列表都可以放进这个函数,返回它的元素长度。
(lambda x:[len(i) for i in x])
  1. 通过在函数定义旁边的括号里放入我们的列表,来调用这个函数。
(lambda x:[len(i) for i in x])(lst)
  1. 把新创建的列表赋值给一个变量,这样你就可以用它进行其他操作(比如找出最大或最小的元素,或者它的索引,就像这个页面上提到的问题一样)。
list_of_lengths = (lambda x:[len(i) for i in x])(lst)
9

要打印出元素的长度:

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

我建议你看看一些教程,比如这个 http://docs.python.org/tutorial/

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

首先,你手里拿的不是列表,而是元组。这个代码可以适用于任何序列,不过,列表和元组都是序列(还有字符串、集合等等)。所以,max函数有一个key参数,用来对可迭代的元素进行排序。这样,从l中的所有元素里,会选出那个长度最长的。

撰写回答