为了账号安全,请及时绑定邮箱和手机立即绑定

嵌套列表代码中缺少第一个列表

嵌套列表代码中缺少第一个列表

月关宝盒 2022-07-05 19:05:35
group = 0position = 0end = "n"while (end == "n"):    group = group + 1    xy = [[] for xy in range(group)]    xy[position].append(int(input("Input x value: ")))    xy[position].append(int(input("Input y value: ")))    position = position + 1    end = input("Last entries? [y/n] ")print (xy)输出Input x value: 1Input y value: 2Last entries? [y/n] nInput x value: 3Input y value: 4Last entries? [y/n] y[[], [3, 4]]我的第一个清单不见了,我不明白为什么。如何解决这个问题?
查看完整描述

2 回答

?
holdtom

TA贡献1805条经验 获得超10个赞

发生这种情况是因为您在每个循环中都运行此行:


xy = [[] for xy in range(group)]

这将重新分配xy给一个空列表列表。


考虑以下代码,它简化了您现有的工作:


end = "n"

xy = []


while (end == "n"):

    xy.append([int(input("Input x value: ")), int(input("Input y value: "))])

    end = input("Last entries? [y/n] ")


print (xy)


查看完整回答
反对 回复 2022-07-05
?
绝地无双

TA贡献1946条经验 获得超4个赞

您每次都在重新定义列表 xy,因此所有列表都将被删除,只有最后一个会被保存。


这是对其进行一些编辑的代码:


end = "n"

xy = []


while (end == "n"):

    a = int(input("Input x value: "))

    b = int(input("Input y value: "))

    xy.append([a,b])

    end = input("Last entries? [y/n] ")


print (xy)

使用此代码,您甚至不需要使用group和position变量。


您可以进一步简化它,但可读性较差:


end = "n"

xy = []


while (end == "n"):

    xy.append([int(input("Input x value: ")), int(input("Input y value: "))])

    end = input("Last entries? [y/n] ")


print (xy)


查看完整回答
反对 回复 2022-07-05
  • 2 回答
  • 0 关注
  • 106 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信