是否有任何方法可以将列表的一个子部分作为列表,并将更改反映回源列表?例如:
x = list(range(10))
y = [some subsection of x] # What goes here?
y.reverse()
print(x)
期望输出,注意元素3到7的反转:
[0, 1, 2, 7, 6, 5, 4, 3, 8, 9]
如果这是不可能的,是否有一些其他设施,将提供类似的功能?你知道吗
这也许是我想做的事情的一个更好的例子,据我所知,切片分配不能处理它。至少,不是很优雅。递归快速排序:
def QuickSort(x):
left,right = Partition(x)
QuickSort(left)
QuickSort(right)
可能numpy数组就是您要找的。切片numpy数组返回的是视图,而不是副本。见http://docs.scipy.org/doc/numpy/reference/arrays.indexing.html#basic-slicing
使用列表不可能做到这一点,numpy通常会做到这一点。也就是说,列表的切片是副本,而numpy数组的切片是视图。你知道吗
对
y
的修改不可能直接影响x
,但是可以使用片分配来用y
中的值更新x
。例如:当然,您可以在一行
x[3:8] = reversed(x[3:8])
上完成这一切。你知道吗相关问题 更多 >
编程相关推荐