一荤配一素 2020-04-08 04:43 采纳率: 100%
浏览 188
已采纳

一段简单的python代码,帮萌新看看输出为啥是这样

points = int(input())

l = [[0]*2]*points

for i in range(points):
    str_l = input().split()
    l[i][0] = int(str_l[0])
    l[i][1] = int(str_l[1])
    print(l)
print(l)

我的输入是

图片说明

结果输出是

图片说明

按道理说不应该每次改变了l[i]之后会有相应的变化吗,但是这结果....

  • 写回答

1条回答 默认 最新

  • 吃鸡王者 2020-04-08 06:29
    关注

    l的定义有问题,你使用[[]]*n来定义列表时,列表里的每一个元素都是同一个列表,所以你修改一个的值,其它的值也会跟着改变,
    建议这样创建你的列表:
    l=[[0,0] for i in range(len(points))]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?