Python a=a.reverse使列表为空?
在翻译处Python a=a.reverse使列表为空?,python,Python,在翻译处 a = [1,2,3,4] a = a.reverse() 接下来,当我在解释器上输入a时,我什么也得不到。看来a=a.reverse()生成了一个空列表。这是故意的吗 我在windows xp上使用python 2.5。列表是一种可变类型,因此列表操作已就位,并返回无反向更改列表,不返回任何内容。因此,这是预期用途: a = [1, 2, 3, 4] a.reverse() a # => [4, 3, 2, 1] 如果您将reverse的结果分配回a,您将用无意
a = [1,2,3,4]
a = a.reverse()
接下来,当我在解释器上输入a时,我什么也得不到。看来a=a.reverse()生成了一个空列表。这是故意的吗
我在windows xp上使用python 2.5。
列表
是一种可变类型,因此列表
操作已就位,并返回无
反向
更改列表,不返回任何内容。因此,这是预期用途:
a = [1, 2, 3, 4]
a.reverse()
a # => [4, 3, 2, 1]
如果您将
reverse
的结果分配回a
,您将用无意义的返回值(None
)覆盖它的所有辛苦工作,这就是错误的来源。python上列表的内置方法reverse
不会返回反向列表
它在适当的位置反转列表
因此,如果您想反转列表,就像在代码中一样,只需执行以下操作:
a = [1,2,3,4]
a.reverse()
我想你想做的是:
a = [1,2,3,4]
a.reverse()
a
是一个对象,操作对它的数据起作用,因此您不需要再次分配它。反向方法执行反向“就地”(如排序)并返回无,因此在调用a.reverse()
a
后,已经包含结果。列表.reverse()
只是不返回任何内容,因为它改变了列表的位置。请参见此示例:
>>> a = [1,2,3,4]
>>> a.reverse()
>>> a
[4, 3, 2, 1]
还有一个reversed
函数(实际上是一个类型,但在这里并不重要),它不改变列表的位置,而是返回一个迭代器,其中列表项的顺序相反。尝试:
>>> a = [1,2,3,4]
>>> a = list(reversed(a))
>>> a
[4, 3, 2, 1]
reverse()原地修改列表,不返回任何值。但如果您想保护旧列表,可以使用reversed()函数,它将返回一个迭代器
In [1]: a=[1,2,3,4]
In [2]: print(a.reverse())
None
In [3]: a
Out[3]: [4, 3, 2, 1]
In [4]: a=[1,2,3,4]
In [5]: print(reversed(a))
<listreverseiterator object at 0x24e7e50>
In [6]: list(reversed(a))
Out[6]: [4, 3, 2, 1]
In [7]: a
Out[7]: [1, 2, 3, 4]
[1]中的a=[1,2,3,4]
在[2]中:打印(a.反转()
没有一个
在[3]中:a
Out[3]:[4,3,2,1]
[4]中:a=[1,2,3,4]
在[5]中:打印(反转(a))
在[6]中:列表(反向(a))
Out[6]:[4,3,2,1]
在[7]中:a
Out[7]:[1,2,3,4]
此处为文档:此处为: