Shaquila_Chau 2021-10-10 11:39 采纳率: 70%
浏览 25
已结题

为什么python利用循环insert插入列表出现错误?


with open('test2.txt','r')as fin:
    line = fin.read()
    str1 = line.split('\n')
    a =0
    while a < len(str1):
        if "hg38" in str1[a] :
            str1.insert(a-1,'\n')
        else:
            a += 1
    print(str1)

test2的内容如下图:

img

我想要在有hg38的行前面增加一个空行,但是我程序运行不出来,请问有人能够指点一二吗?

  • 写回答

2条回答 默认 最新

  • 想上天的狗 2021-10-10 13:55
    关注

    你插入后整个数组会变长,然后插入后当前行就变成了‘hg38’的前一行,下次又会进行一次插入,陷入死循环

    with open('test2.txt','r') as fin:
        line = fin.read()
        str1=line.split('\n')
        a=0
        while a<len(str1):
            if 'hg38' in str1[a]:
                str1.insert(a,'\n')
                a+=1
            a+=1
        print(str1)
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月20日
  • 已采纳回答 10月12日
  • 创建了问题 10月10日

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料