- 常见的问题
在使用python写循环代码时,经常会遇到这样的问题,那就是作为长度标尺的列表长度一直在变化,比如说在你写一个循环pop列表元素的程序时,这时候必须实时更新列表长度才行,如下。 - 解决办法示例
首先声明,dir_S是一个非空列表。如以下代码所示,在未添加最后一行的情况下,当我想将dir_S中的某些元素剔除时,我遇到了以上的问题,程序报错
而在添加了最后一行之后,问题解决。原因在于最后一行实现了不删除元素时立刻更新列表长度的功能。
length=len(dir_S)
for i in range(0,length):
if i < length:
if os.path.split(dir_S[i])[1] == 'DR8':
dir_S.pop(i)
elif os.path.split(dir_S[i])[1] == 'DR7':
dir_S.pop(i)
elif os.path.split(dir_S[i])[1] == 'DR6':
dir_S.pop(i)
elif os.path.split(dir_S[i])[1] == 'DR5':
dir_S.pop(i)
elif os.path.split(dir_S[i])[1] == 'DR4':
dir_S.pop(i)
elif os.path.split(dir_S[i])[1] == 'DR3':
dir_S.pop(i)
elif os.path.split(dir_S[i])[1] == 'DR2':
dir_S.pop(i)
elif os.path.split(dir_S[i])[1] == 'DR1':
dir_S.pop(i)
####以下是最后一行
else:
length=len(dir_S)
感谢浏览!