阅读Dictionary时循环中的Python逻辑错误

时间:2017-10-05 14:44:10

标签: python oop

我是python和OOPS的新手。如果book已存在于字典中,我期待我的模块add_book增加。请帮助我。不确定为什么循环不能按预期工作。

https://github.com/amitsuneja/Bookstore/commit/4aefb378171ac326aacb35f355051bc0b057d3be

1 个答案:

答案 0 :(得分:1)

当您仍在迭代时,不应附加到列表中。此外,您的代码将为列表中已具有不同名称的每个项附加新项。相反,您应该使用for/else循环。在这里,else只会在循环中没有break的情况下触发。

for recordlist in self.mybooksinventory:
    if self.name == recordlist['name']:
        recordlist['quantity'] += 1
        break  # break from the loop
else:  # for/else, not if/else !
    self.mybooksinventory.append({'name':self.name,'stuclass':self.stuclass,'subject':self.subject,'quantity':1})