我需要浏览一个列表并打印其中最长的单词。我可以只打印一个单词,但无法弄清楚如何打印多个单词,例如,如果有两个单词的长度为三个字母。
我试过了
list.sort (key=len, reverse =True)
print ("The longest word in the list is: " , list[0])
这可行,但只打印第一个最长的单词,这对超过一个最长的单词没有好处。
我也试过:
p=0
for item in list:
if len (item) > p:
s=item
p = len(item)
print (s)
这也和前面的代码一样
我还需要对列表中最短的单词执行此操作。
如果这不是一个好问题,我深表歉意,这是我的第一个问题。
最佳答案
首先,不要永远使用list
作为变量名,因为它会覆盖内置类型并可能在以后引起麻烦。
你可以对最长的单词执行此操作:
for i in lst:
if len(i) == max(lst, key=len):
print(i)
对于最短的单词:
for i in lst:
if len(i) == min(lst, key=len):
print(i)
第一个代码打印与最长字符串长度相同的字符串。第二个做同样的事情,但使用最短的字符串。
一个小的优化是在循环之前预先计算最大/最小长度,因此您不需要每次都重新计算。
maxLen = max(lst, key=len)
for i in lst:
if len(i) == maxLen:
print(i)
对另一个循环也可以这样做。
关于Python - 从列表中打印多个最短和最长的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14725120/