2
我有類似下面的方法:切片列表(Python 3中)
def slice_list(my_list, slice_point):
my_list = my_list[:slice_point]
print("Inside method: ", my_list)
return
我有一個測試爲它類似如下:
if __name__ == "__main__":
my_list = [1,2,3,4,5]
slice_point = 3
slice_list(my_list, slice_point)
print("Outside method: ", my_list)
我得到的輸出是不我所預期的,在這個意義上,該清單沒有最終編輯
>>>Inside method: [1, 2, 3]
>>>Outside method: [1, 2, 3, 4, 5]
但是當我做一個append
到列表中,我T還編輯列表爲好,如下例所示:
def append_to_list(my_list, element):
my_list.append(element)
print("Inside method: ", my_list)
return
if __name__ == "__main__":
my_list = [1,2,3,4,5]
append_to_list(my_list, "new element")
print("Outside method: ", my_list)
這給下面的輸出:
>>>Inside method: [1, 2, 3, 4, 5, 'new element']
>>>Outside method: [1, 2, 3, 4, 5, 'new element']
爲什麼切片不會改變列表爲好?
您應該閱讀有關本地和全局變量。除非指定爲全局,否則在函數中創建或重新分配的任何變量均視爲本地變量。但追加不重新分配... – Julien
另外,你的功能不是一種方法。 –