Python-从列表中打印多个最短和最长的单词
问题内容:
我需要浏览列表并在其中打印最长的单词。我只用一个字就能做到这一点,但是,例如,如果有两个字长为三个字母,就无法弄清楚如何打印多个字。我试过了
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)
这也与之前的代码相同
对于列表中最短的单词,我也需要这样做。
抱歉,这不是一个好问题,这是我的第一个问题。
问题答案:
实际上,可以将您现有的代码修改为可以正常工作。不要在中保留一个字符串s
,而应保留一个list
字符串。如果找到与上一个最长的长度相同的长度,则为该长度append
。如果您发现的更长,则扔掉list
并开始新的。像这样:
p=0
s=[]
for item in lst:
if len(item) > p:
s=[item]
p=len(item)
elif len(item) == p:
s.append(item)
print(s)