首先让我描述一下我工作的问题。 这是来自hackerrank的问题 - List Comprehensions.
这是我对这个问题的解决方案:
final_list = [];
temp_list = [];
x = int(input());
y = int(input());
z = int(input());
n = int(input());
for i in range(x+1):
for j in range(y+1):
for k in range(z+1):
if((i + j + k) != n):
temp_list.clear();
temp_list.append(i);
temp_list.append(j);
temp_list.append(k);
final_list.append(temp_list);
print(final_list);
我使用这些值作为输入:x = 1,y = 1,z = 1且n = 2.
使用这些值我得到输出:[[1,1,1],[1,1,1],[1,1,1],[1,1,1],[1,1,1] ]
我没有得到,即使我清除了temp_list然后为什么我得到此输出而不是:[[0,0,0],[0,0,1],[0,1,0],[1 ,0,0],[1,1,1]]。
而且,当我在if条件中声明temp_list而不是在代码顶部声明时,我得到了答案。 任何人都可以告诉我为什么会这样?