python写循环程序时,列表长度一直变化怎么办?简单方法示例。

  • 常见的问题
    在使用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)

感谢浏览!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值