我有一个名为“mb”的列表,它的格式是:
['Company Name', 'Rep', Mth 1 Calls, Mth 1 Inv Totals, Mth 1 Inv Vol, Mth 2
...等等
在下面的代码中,我只是附加了一个包含 38 个 0 的新列表。这很好。
但是在下一行我得到一个错误: 'generator' 对象不支持项目分配
谁能告诉我: 1)如何纠正这个错误,以及 2) 为什么下面的 len(mb)-1 被认为是生成器。
注意:row[0] 只是另一个列表中保存的“公司名称”。
mb.append(0 for x in range(38))
mb[len(mb)-1][0]=row[0]
最佳答案
事实上,您并没有追加 38 个 0 的列表:您追加了一个生成器,它将产生 0
38 次。这不是你想要的。但是,您可以将 mb.append(0 for x in range(38))
更改为
mb.append([0 for x in range(38)])
# note the [] surrounding the original generator expression! This turns it
# into a list comprehension.
或者,更简单(感谢@John 在评论中指出这一点)
mb.append([0] * 38)
关于Python - 为什么这段代码被认为是一个生成器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20123912/