python - 两个列表给出相同值的列表的逻辑错误

标签 python pandas list dataframe

我正在根据两个 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

最佳答案

xy 似乎引用了同一个列表。也许您已经做过类似的事情

>>> x, y = ([],)*2

您可以通过执行以下操作来检查是否属于这种情况:

>>> x is y
True

通过确保使用不同的列表对象启动 x 和 y 来修复此问题,例如:

>>> x, y = ([], [])
>>> x is y
False

关于python - 两个列表给出相同值的列表的逻辑错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59069312/

相关文章:

python - Pandas 数据帧 : Converting between currencies

python - 将 Pandas 'findall' 结果列表拆分为多个项目,以按唯一性分组

python - Pandas 计算满足条件的行的列平均值

python - 理解 Pandas 中的 any() 和 nan

list - 如何在 Dart 中创建一个空列表

python - python 上的重复项列表

python - 如何在多个单独的文本中找到最常用的词?

python - 为什么 json.loads() 对某些字符串起作用?

python - any() 是否被延迟评估?

Python "for in"循环打印列表中的最后一项