2017-07-09 35 views
-1

我正在以文本文件的形式读取行,然后通过空格分隔这些行,并给出了一个2d列表。嵌入式数组中的某些字符串包含我试图用str.replace过滤掉的垃圾,但它不起作用。替换2d python列表中的字符串

import os 

infile = 'CMULEX.txt' 

data = [] 
with open(infile, 'r') as f: 
    read_data = f.readlines() 

    for row in read_data[:5]: 
     split_line = (row.split()) 
     data.append(split_line) 

for line in data[:5]: 
    for wd in line: 
     wd = wd.replace('Coda', '') 
+0

“我知道了” ......我想你省略结束。 –

+0

你能告诉我们CMULEX.txt的一部分吗? – MishaVacic

+1

您不会*将结果分配回列表项,只是'wd'循环变量。 –

回答

1

wd是一个局部变量。这不是一个返回列表的“指针”。列表理解似乎是这里的优雅的解决方案:

for row in read_data[:5]: 
    split_line = (row.split()) 
    data.append([wd.replace("Coda", "") for wd in split_line]) 
+0

谢谢kindly –

-1
For line in data[:5]: 
    line[:] = [ '' if x == 'Coda' else x for x in line] 
+0

这段代码是错误的,它替换了'line'而不是替换'data'中的代码 – phd

+0

他从来没有提到他想替换数据,他只是想要一个过滤的输出,他可以在线上执行自己想要的操作。 –