包含两个具有相同值的列表的列表出现逻辑错误

时间:2019-11-27 11:35:23

标签: python list

我正在基于两个熊猫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

1 个答案:

答案 0 :(得分:2)

xy似乎引用了同一列表。可能您已经完成了类似的操作

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

您可以通过以下方法检查是否是这种情况:

>>> x is y
True

通过确保使用不同的列表对象初始化x和y来解决此问题,例如:

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