[問題] List.append問題

作者: pd41987 (Wangkson ^_____^)   2017-09-15 12:21:24
小弟新學Python~
先前在迴圈內使用list.append在list中append list
output出來的值 不知為何會一直重複
並沒有依序加在list的最尾端
請教各位大大~小弟是哪個地方沒有注意到
Output:
Loop 1
Need to add [-1, 0, 1]
Result [[-1, 0, 1]]
Loop 2
Need to add [-1, 0, 1]
Result [[-1, 1, 0], [-1, 1, 0]]
Loop 3
Need to add [-1, -1, 2]
Result [[-1, 2, -1], [-1, 2, -1], [-1, 2, -1]]
.
.
.
.
////////////////////////////////////////////////////////////////////
Code:
nums = [-1, 0, 1, 2, -1, -4]
if len(nums) < 3:
final_answer_list = []
else:
answer_list = [0,0,0]
final_answer_list = []
print(final_answer_list)
input_length = len(nums)
z = 0
for i in range(0,input_length):
for j in range(0,input_length):
if j!=i:
for k in range(0,input_length):
if k!=i and k!=j:
answer_list[0] = nums[i]
answer_list[1] = nums[j]
answer_list[2] = nums[k]
cum_val = 0
for l in range(0,3):
cum_val += answer_list[l]
if cum_val == 0:
z += 1
print('Loop',z)
answer_list2 = sorted(answer_list)
print('Need to add ',answer_list2)
final_answer_list.append(answer_list)
print('Result ',final_answer_list)
作者: Yshuan (倚絃)   2017-09-15 14:34:00
final_answer_list.append(list(answer_list))append進去的一直是同一塊記憶體 需要copy出來
作者: cutekid (可愛小孩子)   2017-09-15 14:40:00
推樓上(Y)
作者: brightwish (密碼同帳號)   2017-09-16 00:26:00
不對吧 你打need to add answer_list2 可是你append的是answer_list阿... 漏打2吧?
作者: pd41987 (Wangkson ^_____^)   2017-09-16 21:20:00
感謝一樓大大!! 剛試過沒有問題 List如預期append起來了
作者: brightwish (密碼同帳號)   2017-09-17 02:33:00
樓上 我剛測過了 你就是漏打2啦

Links booklink

Contact Us: admin [ a t ] ucptt.com