我得到了一个包含一个项目的对象列表。
print self.parameters
print len(self.parameters)
for p in self.parameters:
print p
当我打印出列表和len的len时,我看到了预期的:一个项目。 但是当我在lsit上循环时,我也得到一个无项......!
[<__main__.Parameter object at 0x00000000022D4828>]
1
<__main__.Parameter object at 0x00000000022D4828>
None
这里发生了什么? (是的,我确定,“无”输出来自此打印声明)
编辑: 我正在操纵我正在循环的列表:
print self.parameters
print len(self.parameters)
for p in self.parameters:
print p
(...)
self.parameters.append(<something that returned None>)
答案 0 :(得分:1)
不要这样做。
for p in self.parameters:
print p
...
self.parameters.append(...) # No.
请参阅Modifying list while iterating - 基本上,在迭代时不应修改某些内容。如果需要,您可以制作副本:
for p in list(self.parameters):
print p
...
self.parameters.append(...) # Okay