Python和字典列表

2024-05-19 06:23:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在尝试对一系列字典求和,但不断出现错误“objectisnotiterable”。我对python非常陌生,所以我甚至不知道我的构造函数是否正确,也许有人能帮我?你知道吗

    class Solution:

    def __init__(self, solution = []):
        self.solution = solution

    def getWeight(self):
        print(sum(item["weight"] for item in solution))


solution = Solution([
        {"name": "diamond", "weight": 20, "value": 1050},
        {"name": "laptop", "weight": 550, "value": 320}
        ])

solution.getWeight()

Tags: nameself字典initvaluedef错误item
2条回答

你的问题是:

 print(sum(item["weight"] for item in solution))

您需要在这里指定“solution”是类中的solution变量。 尝试:

print(sum(item["weight"] for item in self.solution))

如果solution是传递给__init__的参数,但通过将self实例用作self.solution可供类中的其他方法访问,则求和不正确。虽然使用( )的求和方法是正确的,但另一种方法是使用列表理解来收集项目,然后使用sum。你知道吗

def getWeight(self):
    print(sum([item["weight"] for item in self.solution]))

相关问题 更多 >

    热门问题