Python
 Computer >> コンピューター >  >> プログラミング >> Python

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']

zipと列挙を使用

このアプローチでは、enumerateを使用してリストの各要素をリストし、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']

  1. Pythonでリストのサイズを見つける

    リストはPythonのコレクションデータ型です。リスト内の要素は変更可能であり、要素に関連付けられた特定の順序はありません。この記事では、Pythonでリストの長さを見つける方法を説明します。つまり、重複しているかどうかに関係なく、リストに存在する要素の数を取得する必要があります。 例 以下の例では、「日」という名前のリストを使用します。まず、len()関数を使用してリストの長さを見つけます。次に、さらにいくつかの要素を追加し、append()関数を使用して長さを再度確認します。最後に、remove()関数を使用していくつかの要素を削除し、長さを再度確認します。要素が重複している場合でも、r

  2. Pythonでリストの平均を見つけますか?

    Pythonは、n個の要素を計算するためのsum関数を提供します。ここでは、この関数を使用して平均を計算します。 アルゴリズム Step 1: input “size of the list” Step 2: input “Element” Step 3: using sum function calculate summation of all numbers. Step 4: calculate average. サンプルコード # Average of a list A=list() n=int(input(Enter the size of the List ::)) print