2017-11-28 6 views
1

ファイルを読み込み、ファイルの行をリストに追加する関数を記述しようとしています。たとえば、読み込みファイル:ファイルからリストへの行の追加

hello 
goodbye 

はリストを返す必要があります。

[["h","e","l","l","o"] 
["g","o","o","d","b","y","e"]] 

私は、入力として受け取りヘルパー関数の分割線、文字列を作成しているとの文字のリストを返します文字列。たとえば、​​は

となり、新しい行を挿入してリストから「\ r」と「\ n」を取り除くことができません。ここに私のコードは次のとおりです。

def createGrid(filename): 
    myFile = open(str(filename),"r") 
    myGrid = [] 
    for line in myFile: 
     myLine = splitLine(line) 
     myGrid.append(myLine) 
    return myGrid 
+0

は、 'ハローgoodbye'二行、またはちょうど1行であると考えられます複数の言葉で? – Ajax1234

答えて

1

あなたはおそらく、あなたがやりたいことがたくさんはPythonの組み込み方法によって処理され、この

def createGrid(filename): 
    myFile = open(str(filename),"r") 
    myGrid = [] 
    for line in myFile: 
     for apl in line: 
      myLine = apl.splitlines() 
      myGrid.append(myLine) 
    return myGrid 
1

のようなループに対して複数を反復処理してみてください。

文字列を囲むlist()を折り返すと、文字のリストに分割されます。文字列の.strip()メソッドを使用すると、先頭と末尾の空白(たとえば、'\r\n')が削除されます。 forループを使用して開いたファイルの各行をループすることができます。ここで

def create_grid(filename): 
    with open(filename, 'r') as fp: 
     return [list(row.strip()) for row in fp] 
0

は別のソリューションです:

def createGrid(filename): 
    myFile = open(str(filename),"r") 
    myGrid = [] 
    for line in myFile: 
     myGrid.append(list(line.strip())) 
    return myGrid 

print createGrid("input.txt") 

出力:あなたが投稿例で

[['h', 'e', 'l', 'l', 'o'], ['g', 'o', 'o', 'd', 'b', 'y', 'e']] 
関連する問題