You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python二维数组存储异常求助:化合物经验公式求解代码排查

问题分析与修复方案
  • 你的代码中创建二维列表的方式 data = [[""]*5]*n 存在核心问题:这种写法会让列表中的所有子列表指向同一个内存对象。也就是说,当你修改 data[i][j] 时,所有行的第j个元素都会被同步修改,因为它们本质上是同一个列表的引用,这就是输出不符合预期的原因。

修复后的代码如下:

n = int(input("Enter the number of elements: "))

# 用列表推导式创建独立的子列表,避免引用复用
data = [["" for _ in range(5)] for _ in range(n)]

for i in range(n):
    print("Enter the symbol of element, percentage and atomic number: ")
    for j in range(3):
        data[i][j] = input()

print(data)
  • 列表推导式 [["" for _ in range(5)] for _ in range(n)] 会为每一行单独生成一个新的长度为5的列表,各行之间完全独立,输入的数据就能正确存储到对应的位置,不会出现所有行数据同步变化的问题。

内容的提问来源于stack exchange,提问作者Rishith Raj Raizada

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 16:50:57