Python:从循环中更改列表值

时间:2018-11-25 20:44:11

标签: python list loops

我正在用Python为一个类创建一个简单的Bin打包程序,并且遇到无法完全跟踪的范围问题。我试图更改ffBins列表中的值,但是列表中的值未更改。

打印结果显示我期望的结果(“ 10 5 5”),因为我从j中减去了i,但是它并没有像我期望的那样改变实际列表中的值。我怀疑在循环过程中需要以其他方式指向列表,但是解决方案使我难以理解。是否有一种简单的方法来更改列表中的值,而不仅仅是当前的j变量?

    ffBins.append(10)
    for i in ffItems:
        itemPacked = 0
        for j in ffBins:
            #print(j)
            if j >= i:
                print(j),
                print(i),
                j = j-i
                print(j)
                itemPacked = 1
            #break
        if itemPacked == 0:
            ffBins.append(10)
            ffBins[-1] = ffBins[-1]-ffItems[i]

1 个答案:

答案 0 :(得分:0)

您在这段代码中所做的就是将j重新绑定到一个新值。您需要通过索引将其设置回列表中。您可以使用enumerate来获取索引和值。

for index, j in enumerate(ffBins):
    ...
     ffbins[index] = j - i