在Python的给定列表中找到k个最长的单词
我们有一种情况,我们必须从包含许多长度不同的单词的列表中选择前n个最长的单词。在本文中,我们将看到实现这一目标的各种方法。
与count()和sorted()
我们首先以相反的顺序对列表中的元素进行排序,以便最长的单词在列表的开头可用。然后找到每个单词的长度,并将计数结果添加到变量中。最后,从所需数量的最长单词中切出一片。
示例
from itertools import count
def longwords(l, x):
c = count() return sorted(l, key=lambda i: (len(i), next(c)),
reverse=True)[:x]
listA = ['Earth','Moonshine','Aurora','Snowflakes','Sunshine']
n = 2
print(longwords(listA, n))输出结果
运行上面的代码给我们以下结果-
['Snowflakes', 'Moonshine']
带拉链和枚举
在这种方法中,我们使用枚举列出列表中的每个元素,然后应用sorted和zip函数来获取计数。负长度值表示排序的相反顺序,最后我们对所需数量的计数进行切片。
示例
def longwords(l, x): idx, words = zip(*sorted(enumerate(l), key = lambda i: (-len(i[1]), -i[0]))[:x]) return list(words) listA = ['Earth','Moonshine','Aurora','Snowflakes','Sunshine'] n = 2 print(longwords(listA, n))
输出结果
运行上面的代码给我们以下结果-
['Snowflakes', 'Moonshine']
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短