質問: b[j]: ans.append(a[i]) ``` とコードを書いて実行したところ、計算が一向に終わりません。 aリスト・bリストともに、 2000000近くデータがあるからだと思いましたが、これ以外の方法が思いつきませんでした。 より高速にこのコードを書きなおすにはどうしたらいいですか?
回答: > > ansをfor文で回して、ansにどのようなものが含まれているか確認するために使います > > > それならば、まず**遅延評価**を利用するのが第一かと思います。 実行速度は速くなりませんが、処理が分散するので実用はし易いはずです。 ``` gen_ans = filter(lambda e: e[0] in b, a) for ans in gen_ans: ... ``` また、帰属のチェックは単にin演算子を使えば良いです。 bの型もlistよりsetの方が扱いやすいでしょう。