[英]Python, how can I change in-place a sub array?
例如,我有一个功能
def foo(a):
a[0],a[1] = a[1], a[0]
和
a = [1,2,3]
所述foo(a)
改变的值a
就地但foo(a[:1])
没有。 请帮助,让我知道我怎样才能使foo(a[:1])
的变化值a
就地
您可以尝试使用索引。
def foo(a, n):
a[n],a[n+1] = a[n+1], a[n]
正如其他人提到的那样,当您对列表进行切片时,它将创建一个新副本,而您正在就地进行修改。 考虑以下任一情况:
def foo(a):
a[0], a[1] = a[1], a[0]
return a
a = [1,2,3]
a[1:] = foo(a[1:])
要么
def foo(a, i=0):
a[i], a[i+1] = a[i+1], a[i]
i
是你的切片索引。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.