私はサイドプロジェクトに取り組んでおり、この問題が発生しました。内側のリストの任意の数の(しかし、私は、制限を作成すると考えられてきました)が存在することができ複数のリストから同じ文字で始まるすべての単語のリストを取得する
- ['operating', 'alive', 'effective', 'rapid', 'progressive', 'working', 'mobile']
- ['enjoyable', 'pleasant', 'entertaining', 'amusing', 'lively', 'boisterous', 'convivial', 'merry', 'witty']
:基本的に、私が扱ってるの入力は、内側のリストはこのような何かを見てリストのリスト、です。私が達成したいのは、同じ文字で始まる各リストから単語のリストを返すことです。たとえば、上記のように、私たちは次のようなものを得るでしょう:
[alive, amusing], [effective, enjoyable], [effective, entertaining], [progressive, pleasant] ...
私の質問は、どのような良いアプローチですか?私はアルファベット全体を見渡し、ブール値の配列を使って、どの文字にその文字から始まる単語が含まれているかを把握していましたが、効率が悪いように見えます。例えば
(完全ではないが、ちょうど参照のために...):
d = dict.fromkeys(ascii_lowercase, False)
for c in ascii_lowercase:
found = False
for item in description:
for syn in item:
if syn.startswith(c):
found = True
d[c] = found
そしてただの文字で始まる単語をつかむには、出力リストを構築するために、各リストから「TRUE」とマーク。
もっと簡単なアプローチはありませんか?私はPythonを初めて使っているので、この場合に役立つ組み込み関数がないかどうかはわかりません。
読んでいただきありがとうございます!すべてのリストの各リスト要素についてlistOfWords []、およびあなたのリストを反復処理しながら、それを埋める...
:
なぜあなたの例で「E」で始まる単語のリストが2つありますか? – arsho