问题遇到的现象和发生背景:
列表推导式转化为正常的for循环就会报错,在运行for循环代码时会报错(RuntimeError: dictionary changed size during iteration)难道是在使用列表推导式时条件成立没有给vol2赋值?等待列表推导式结束才给vol2赋值?
代码如下:
volumeA = 100
volumeB = 20
volumeC = 10
vol1 = []
vol2 = []
c=[]
vol1.extend((volumeA, volumeB, volumeC))
print(globals().items())
vol2 += [val for name, val in globals().items() if name.startswith('volume')]#列表推导式可以正常执行
for name,val in globals().items():#转化为for循环写法就会报错(RuntimeError: dictionary changed size during iteration)
if name.startswith('volume'):
vol2+=c.append(val)