これはおそらく簡単な質問ですが、自分で簡単な答えを見つけることができませんでした.
2 つのリストが与えられた場合、1 つは ID のリストのみ、もう 1 つはすべてのデータ (気にしない ID を含む) を含みます。
all_data = [['abc', 123], ['cde', 234], ['fgh', 345]]
ids = ['abc', 'fgh']
次の出力を取得する最良の方法は何ですか。同じ ID を持つものだけが保持されることに注意してください。
new_data = [['abc', 123], ['fgh', 345]]
私の現在のコードは次のようなことをします:
for x in all_data:
for y in ids:
if x[0] == y:
new_data.append(x)
別の方法で何をしますか?どこかで見逃したこれを処理する組み込み関数はありますか?
(実際にはセットとそのすべてを含む非常に長いシーケンスであるため、「何かのような」と言います。そのため、共有する「pythonic」ワンライナーがないのです。)
更新:まあ、皆さんは楽しいです。
もう少し辛くしてみたらどうですか。"all_data" の代わりに、"all_data" と同じ形式のリスト エントリがいくつかある辞書 all_data_dict がある場合はどうなりますか? ルールに従って、元の質問への回答を受け入れるようにしますが、楽しみに遅れないようにしたい場合は、何が得られるか見てみましょう!