python中的reverse()用法?

时间:2014-02-22 18:23:34

标签: python reverse

  

sort()和reverse()方法在排序或反转大型列表时修改列表以便经济空间。为了提醒您它们是由副作用操作的,它们不会返回已排序或反转的列表。

上述文字可在http://docs.python.org/2/library/stdtypes.html#mutable-sequence-types

找到

“修改空间经济名单”是什么意思?

示例:

x = ["happy", "sad"]
y = x.reverse()

会将None返回y。那么为什么呢,

x.reverse()

成功撤消x

3 个答案:

答案 0 :(得分:2)

  

“修改空间经济名单”是什么意思?

这意味着它不会创建列表的副本。

  

为什么,x.reverse()成功反转x?

我不明白这个问题。这样做是因为这是它的目的(反向x并返回None)。

请注意,sort()reverse()的副本不会修改原件并返回副本。这些函数称为sorted()reversed()

In [7]: x = [1, 2, 3]

In [8]: y = list(reversed(x))

In [9]: x
Out[9]: [1, 2, 3]

In [10]: y
Out[10]: [3, 2, 1]

答案 1 :(得分:1)

list.reverse就地反转列表并返回None,这样做的目的就是appendremoveextend,{{ 1}}等等。

insert

答案 2 :(得分:1)

在几乎所有编程语言中都有两种可调用定义:函数和过程。

函数是执行某些处理并返回值的方法或子例程。例如,对两个整数ab求和的函数将返回总和a + b的结果。

另一方面,程序几乎相同(即使在大多数语言的语法中),但是没有返回值的细微差别,当然它们的副作用 em>,意思是他们改变了某些东西的状态,或只是处理一些数据并将其保存或只是将其打印到文件中。

所以在这种情况下,reverse将作为一个过程,它改变被反转的列表的状态(通过反转它),这里是如何在没有额外空间的情况下完成的:

def reverse(l):
    for i in range(len(l) / 2):
        l[i], l[-i-1] = l[-i-1], l[i]

请注意,永远不会创建新列表,而是代码所做的是通过交换第一个和第二个,第二个来交换列表l 的元素和倒数第二个,直到列表中一半的元素。

希望这有助于您理解;)