3

あなたが言うことができるように、私はpythonに非常に慣れていません。

リストがある場合:

a = [1,2,3,2,1]

これは true と評価されます。

a == a[::-1]

...しかし、これはfalseと評価されます:

a == a.reverse()

なぜそうなのですか?

4

3 に答える 3

8

.reverse()リストをインプレースで反転し、何も返さないため:

>>> print a.reverse()
None

a == None評価されFalseます。

于 2011-04-29T22:26:10.840 に答える
4

a.reverse()戻り値がないため、比較は a==None であり、これは false です

次の方法で確認できます。

>>> str(a.reversed())
'None'

さらに良い:

>>> (id(a.reverse()), id(None))

同じアドレスが表示されます

于 2011-04-29T22:37:49.633 に答える
3

リストの新しいコピーが必要な場合は、代わりにreversed()を使用してください。

a == list(reversed(a))
于 2011-04-29T22:28:49.763 に答える