3

我对python很陌生,你会知道的。

如果我有一个清单:

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

这评估为真:

a == a[::-1]

...但这评估为假:

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 是假的

你可以检查:

>>> 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 回答