如何查找列表中元素的长度?
我刚开始学习编程。我有一个字符串的列表,现在我想打印出最长的那个字符串。
所以我首先想打印出每个字符串的长度。我试着这样做:
l = ("xxxxxxxxx", "yyyy","zz")
for i in range(len(l)):
那我该怎么做呢?
8 个回答
5
如果你在这里是因为想要测量一个序列(比如列表、元组等)中所有元素的长度,并把这些长度放到另一个序列(列表、元组等)里,可以这样做:
简而言之
list_of_lengths = (lambda x:[len(i) for i in x])(lst)
详细解释(从内到外的括号内容)
- 我们遍历列表,使用Python内置的len()函数来获取每个元素的长度。
[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)
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
中的所有元素里,会选出那个长度最长的。