考慮下面的代碼:蟒蛇修改列表的切片功能
def func1(a):
a[:] = [x**2 for x in a]
a = range(10)
print a #prints [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
func1(a[:5])
print a #also prints [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
我要發送列表a
的切片,並改變它的函數內部。我的預期輸出是
[0, 1, 4, 9, 16, 5, 6, 7, 8, 9]
哪種方式是這樣做的慣用方式?
謝謝!
也可以檢查此http://stackoverflow.com/questions/22054698/python-modifying -list-a-function – Kasramvd
@Kasramvd由於另一個問題沒有切片,我不相信這些是重複的。感謝您的參考... – omerbp
這是一個微不足道的差異,但主要問題是更改函數內的可變對象可能會反映調用者。 – Kasramvd