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)