リストの比較

id:Yoshiori said

Python って list の中身が同じかどうか調べるのって何かやり方ある??
>>> a = [1, 2]
>>> b = [2, 1]
>>> a == b
False
これで True が返る方法

で、僕の返答:

>>> set([1, 2]) == set([2, 1])
True

同じものが複数個あってその個数で区別をしたい場合、つまり [1, 2]と[1, 2, 2]は別物とみなしたいって場合はsortedでできる

>>> set([1, 2, 1]) == set([2, 1, 2])
True
>>> sorted([1, 2, 1]) == sorted([2, 1, 2])
False

まあ、でもそういう比較が頻繁に行われるんだとすると、リストってデータ構造で持っているのが合理的じゃない可能性も考えられるね。特にリストがでかい時には毎回setに変換したりソートしたりするコストが高いから。今回のはそれほどシビアな問題でもなさそうだけど。