我正在根据两个 panda dfs 计算值,并存储在两个列表中。但是当我看到输出时,它在两个列表中存储相同的(后者)值。我不清楚我在这里缺少什么。该逻辑在 R 中有效。此外,在计算时,它具有不同的值 - 但随后“强制”为相同的值。
for i in range(10):
x[i] = (trt.loc[i, "Average Cost"] - ctrl.loc[i, "Average Cost"] + int_cost)
print(x[i])
y[i] = (ctrl.loc[i, "Average DALYs"] - trt.loc[i, "Average DALYs"]) * 100 / ctrl.loc[i, "Average DALYs"]
print(x[i],y[i])
打印是为了排除故障,它显示了问题:
输出显示为:
x[0] -> 5.49694781325778
x[0], y[0] -> 4.087583849991359 4.087583849991359
x[1] -> 0.558115134887974
x[1], y[1] -> 3.454047352322206 3.454047352322206
最佳答案
x
和 y
似乎引用了同一个列表。也许您已经做过类似的事情
>>> x, y = ([],)*2
您可以通过执行以下操作来检查是否属于这种情况:
>>> x is y
True
通过确保使用不同的列表对象启动 x 和 y 来修复此问题,例如:
>>> x, y = ([], [])
>>> x is y
False
关于python - 两个列表给出相同值的列表的逻辑错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59069312/