2つのリストの違いを計算する方法を探している間に、別のユーザーの質問を読みました。なぜリスト比較にセットを使用するのですか?
Python, compute list difference
私の質問は、なぜ私は
def diff(a,b):
b = set(b)
return [aa for aa in a if aa not in b]
ではなく
def diff(a,b):
tmp = []
for i in a:
if(i not in b):
tmp.append(i)
return tmp
編集を行うことをするだろうされています。ちょうど二差分機能は、実際の類似点を返さ気づきました。今は正しいはずです。
後者がなぜO(n^2)であるかの良い説明。また、リストの解説とループのアプローチ(リストの解説は私の例では約2倍速い)で行ったいくつかの 'timeit'タイミングを以下に示します:https://gist.github.com/2647005 –
wow ...それはいくつかです怒っている証拠。私は確かに最初のものを実装しています。 – Jake