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