代码如下
a = [[1, 2], [0, 4], [2, 6]]
b = [[]] * 4
for x, y in a:
b[x].append(y)
print(b)
输出如下:
#按理说b[x].append(y),应该会在b[x]的后面插入y。由于b刚开始为空,根据a可以知道运行for语句后:
#b[0] = [4], b[1] = [2], b[2] = [6], b[3] = []。但为什么b的输出结果是图片中那样?哪一步理解错了?
代码如下
a = [[1, 2], [0, 4], [2, 6]]
b = [[]] * 4
for x, y in a:
b[x].append(y)
print(b)
输出如下:
#按理说b[x].append(y),应该会在b[x]的后面插入y。由于b刚开始为空,根据a可以知道运行for语句后:
#b[0] = [4], b[1] = [2], b[2] = [6], b[3] = []。但为什么b的输出结果是图片中那样?哪一步理解错了?
这样的创建方式就是b里的4个list指向同一个位置,所以只要有一个修改其余的都会跟着变
b=[[] for _ in range(4)]