如果我有
我希望您能输出结果为:
a = [1, 2, 3]
def foo (arr):
for i in len (arr): arr [i] += 1
def bar (arr):
foo (arr[:2])
bar (a)
print (a)
我希望您能输出结果为:
>>> [2, 3, 3 ]
我该如何处理这个问题?
动机:我想要一个优先队列,在其中我可以冻结最后的N
个元素,即仅传递queue[:N]
给heapq.heappush()
。但是,每次我将切片传递给它,或者一般地传递给任何函数时,它都会发送一个切片的副本而不是实际的列表到该函数中去,因此我的列表最终保持不变。
for item in arr: item += 1
也不会改变列表。 - Jean-François Fabrearr[:2]
的意义是什么,当输出为[2, 3, 4]
时(对所有元素加1)? - Jean-François Fabre