私は文字列のリストと関数getVowelを持っています。
この関数は、文字列に存在する母音の数を返します。 サンプルコードです。文字列のリストから特定の文字列を取得する方法は?
s = "hello ,this is a string"
no = getVowel(s)
lis = []
lis.append(s)
リストlisにn個の文字列がないとします。
どのようにして母音が最大の3つの文字列を得ることができますか?
私は文字列のリストと関数getVowelを持っています。
この関数は、文字列に存在する母音の数を返します。 サンプルコードです。文字列のリストから特定の文字列を取得する方法は?
s = "hello ,this is a string"
no = getVowel(s)
lis = []
lis.append(s)
リストlisにn個の文字列がないとします。
どのようにして母音が最大の3つの文字列を得ることができますか?
sorted(lis, key=lambda x:getVowel(x), reverse=True)[:3]
そのような何か。ちなみに、Pythonコードの規則に従って、関数の正しい名前はget_vowelでなければなりません。この回答に基づいて
これは 'heapq.nlargest()'を(sorted()ではなく) –
と議論する方が良いでしょう。 'heapq'は構造体に動的に要素を追加したい場合に適しています。パフォーマンス上の 'ソート済み'は 'heapq'よりも速くソートされます。 –
「n」の値が小さい場合(ここではn = 3)、heapqはより良いです。つまり、この関数の全体的な点です。 –
: getVowelが実際に次のことを試して、取り組んでいるあなたの関数を想定するとhttps://stackoverflow.com/a/9887456/4671300
from heapq import nlargest
results = nlargest(3, lis, key=getVowel)
:
sorted(lis, key=lambda x: getVowel(x), reverse=True)[:3]
は文書をソートだろう 最後の3つの要素を逆転させるのではなくsorted
のリストから取り除き、最初の3つをとする方が効率的です。ようにこの、[-3:]
とだけインデックスを行うに
:
sorted(lis, key=lambda I: getVowel(i))[-3:]
getVowel' 'の内容は何ですか? – Ajax1234
質問には関係がありますか? –
はい、 'getVowel'は母音の数を見つける作業をしているはずですから。 – Ajax1234