python找到一行单词中最长的_在Python的给定列表中找到k个最长的单词
我們有一種情況,我們必須從包含許多長(zhǎng)度不同的單詞的列表中選擇前n個(gè)最長(zhǎng)的單詞。在本文中,我們將看到實(shí)現(xiàn)這一目標(biāo)的各種方法。
與count()和sorted()
我們首先以相反的順序?qū)α斜碇械脑剡M(jìn)行排序,以便最長(zhǎng)的單詞在列表的開(kāi)頭可用。然后找到每個(gè)單詞的長(zhǎng)度,并將計(jì)數(shù)結(jié)果添加到變量中。最后,從所需數(shù)量的最長(zhǎng)單詞中切出一片。
示例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))
輸出結(jié)果
運(yùn)行上面的代碼給我們以下結(jié)果-['Snowflakes',?'Moonshine']
帶拉鏈和枚舉
在這種方法中,我們使用枚舉列出列表中的每個(gè)元素,然后應(yīng)用sorted和zip函數(shù)來(lái)獲取計(jì)數(shù)。負(fù)長(zhǎng)度值表示排序的相反順序,最后我們對(duì)所需數(shù)量的計(jì)數(shù)進(jìn)行切片。
示例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))
輸出結(jié)果
運(yùn)行上面的代碼給我們以下結(jié)果-['Snowflakes',?'Moonshine']
總結(jié)
以上是生活随笔為你收集整理的python找到一行单词中最长的_在Python的给定列表中找到k个最长的单词的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python可以做哪些东西_自己总结的一
- 下一篇: vc mysql封装类_Oracle O