文字列の比較で疑問から引用: d1 = 'a a' d2 = 'a a' id(d1) # => 27605856 id(d2) # => 27606080 えっなんで? 文字列は変更不可能なオブジェクトなので普通はisじゃなくて==で比較をするんだけどね。空白で区切られた同一内容の文字列を2つ、対話的環境で個別に作成してからisで比較するとFalseになるようだ。 Python 2.6.1 (r261:67515, Jan 25 2009, 00:21:48) [GCC 4.0.1 (Apple Inc. build 5490)] on darwin >>> a = "a a" >>> b = "a a" >>> a is b False しかし、一つの式で書くとTrue >>> "a a" is "a a" True 一つの関数にまとめてもTrue >>> def foo(): ...