循环仅对嵌套列表执行一次

时间:2020-03-24 23:29:33

标签: python list function memory

我正在尝试编写一个程序,从嵌套中删除带有“错误”的列表,结果创建了一个错误的列表和一个良好的列表:出于某种原因,循环只执行一次就留下一个错误的列表

def cool(axe):
    infile = open(axe, "r")

    holder = []
    bad = []

    for line in infile:
        x = line.strip("\n").split("\t")

        for i in range(len(x)):
            if x[i].isdigit() == True:
                x[i] = int(x[i])

        holder.append(x)

    #print(holder)
    for m in holder:
        #print(m)
        if "ERROR" in m:
            bad.append(m)

    for n in holder:
        if n in holder and n in bad:
            holder.remove(n)

    for n in range(len(holder) - 1):
        if "ERROR" in holder[n]:
            del holder[n]

    print(bad)
    print(holder)

    return holder


print(cool("testin.txt"))

这将返回

[['CAMDEN', 'VINCENT', 'Heavy', 68, 93, 'ERROR', 52, 93, 96], ['CAROLINE', 'MCCARTHY', 'Heavy', 'ERROR', 53, 97, 82, 56, 51]]

这是打印的错误列表,是正确的。

[['MAGGIE', 'BLANCO', 'Heavy', 53, 31, 58, 76, 67, 93], ['BENJAMIN', 'KIM', 'Significant', 77, 57, 42, 45, 64, 78], ['JACOB', 'BOLEN', 'Significant', 86, 76, 65, 91, 80, 64], ['CAROLINE', 'MCCARTHY', 'Heavy', 'ERROR', 53, 97, 82, 56, 51]]

这本来是不错的列表,但是并没有完全摆脱错误列表

[['MAGGIE', 'BLANCO', 'Heavy', 53, 31, 58, 76, 67, 93], ['BENJAMIN', 'KIM', 'Significant', 77, 57, 42, 45, 64, 78], ['JACOB', 'BOLEN', 'Significant', 86, 76, 65, 91, 80, 64], ['CAMDEN', 'VINCENT', 'Heavy', 68, 93, 'ERROR', 52, 93, 96], ['CAROLINE', 'MCCARTHY', 'Heavy', 'ERROR', 53, 97, 82, 56, 51]]

这是原始列​​表

0 个答案:

没有答案