リストの比較

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に変換したりソートしたりするコストが高いから。今回のはそれほどシビアな問題でもなさそうだけど。

Re: 方針転換の予定(1)

http://osaskdot.hideyosi.com/blog2/details.php?bid=161

なにかをすることに対して嫌なことを言う人がいて、それをやめることに対しても別の嫌なことを言う人がいて、だったら続けるにしてもやめるにしても大差ないわけですから、やりたいようにやるといいと思います。この件に関して肯定的なことを言う人も、否定的なことを言う人も、僕を含めてみんな無責任なことを言っているだけですから、自分の人生を何に使うのかはあまり周りの声に従わなくてもいいのではないかと。