2017-07-09 9 views
-1

私はテキストファイルを行として読み込み、それらの行を空白で分割して2dのリストを与えています。組み込み配列の文字列の中には、私がstr.replaceを使ってフィルタリングしようとしているジャンクが含まれていますが、動作しません。2次元の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

ありがとう親切に –

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

コードが間違っています。 'data'で置換するのではなく、' line'を置き換えます。 – phd

+0

彼はデータを置き換えたいとは言わず、単にフィルタリングされた出力を望んでいます。 。 –

関連する問題