【发布时间】:2015-05-15 16:51:18
【问题描述】:
Python 的切片操作会创建列表中指定部分的副本。如何传递父列表的切片,以便当此切片更改时,父列表的相应部分随之更改?
def modify(input):
input[0] = 4
input[1] = 5
input[2] = 6
list = [1,2,3,1,2,3]
modify(list[3:6])
print("Woud like to have: [1,2,3,4,5,6]")
print("But I got: " + str(list))
输出:
想拥有:[1,2,3,4,5,6]
但我得到了:[1,2,3,1,2,3]
【问题讨论】:
-
你不能使用常规的 Python 列表来做到这一点。您可以改为分别传递列表和索引(例如,
modify(list, 3, 6))并让modify使用它们来修改列表。 -
@thefourtheye:这没有意义,因为他的目标是改变对象。
-
只需使用切片分配:
li=[1,2,3,1,2,3]然后li[3:6]=[4,5,6]