【问题标题】:cant remove element from list in for loop [duplicate]无法从for循环中的列表中删除元素[重复]
【发布时间】:2021-06-21 06:14:05
【问题描述】:

我有一个需要解析的 txt 文件。我将文件作为列表读取,然后去除多余的空格。从那里我需要删除一行。它包含了 ” - - - - - - - - - - - -” 我试图摆脱它,但是当我尝试执行下面的代码时,它似乎无法正常工作。当我在 if 语句中打印出该行的值时,它会成功打印,但不会从列表中删除该元素。如果我最后删除它,它可以工作。我没有错吗?

   with open("somefile.txt") as f:
        output = f.readlines()
    
    for i,line in enumerate(output):
    
        if '-' in line:
            #print("this is the line " + str(line) )
            output.remove(line)
            #output.pop(i)
            continue
    
        output[i] = (" ".join(line.split()))
        output[i] = i.split(" ")[:2]
    
    
    #output.pop(1)
    #output.pop(2)
    
    print(output)

【问题讨论】:

标签: python


【解决方案1】:

试试这样的:

with open("your_file.txt") as f:
    output = [" ".join(line.split()) for line in f.readlines() if '-' not in line]

print(output)

但是,该命令什么也没做:

" ".join(line.split())

首先你用“”分割一行,然后用“”加入它

其次,您尝试使用该命令拆分 int 值,引发异常:

output[i] = i.split(" ")[:2]

【讨论】:

    猜你喜欢
    • 2021-10-12
    • 1970-01-01
    • 2022-01-23
    • 2014-07-03
    • 2022-12-13
    • 1970-01-01
    • 1970-01-01
    • 2018-04-02
    • 2012-05-26
    相关资源
    最近更新 更多