1

str のリストのリストとして、シェルで .txt ファイルを開く関数を作成しようとしています。

ファイルは次のようなものです。

TYUIO
GHJKL
BNMCV
ASDFG
XCVBN

そして、私は自分の関数が返す必要があります:

[['T', 'Y', 'U', 'I', 'O'], ['G', 'H', 'J', 'K', 'L'], ...]

等々。

私が書いた関数はほとんどこれを生成します。戻り値:

[['TYUIO'], ['GHJKL'], ...]

等々。この関数を正しいネストされたリストに戻すには、何を変更/追加する必要がありますか?

これは私の機能です:

board_list = []
for line in board_file:
    items = line.rstrip('\n').split('\t')
    items = [item.strip() for item in items]
    board_list.append(items)

return board_list

誰でも助けることができますか?

4

3 に答える 3

4

list()と を使用してみてくださいextend()

items = [list(item.strip()) for item in items]
board_list.extend(items)

各行に 1 つの単語が含まれていると仮定すると、1 行で実行することもできます。なぜあなたが分裂しているのかわからない\tので、これはうまくいかないかもしれません。

with open("data.txt") as board_file:
    board_list = [list(line) for line in board_file.read().split('\n') if line]
于 2012-11-11T14:16:46.457 に答える
1

テキスト ファイルを開いた結果が行のリストだった場合、このリストをlistoflinesとして呼び出すので、次の関数を定義できます。

def listof(listoflines):
    board_list = []
    board = []
    for element in listoflines:
       board_list.append((element.strip('\n')).split())
    for member in board_list:
       for i in range(len(member)):
          board.append(list(member[i]))

    return board
于 2012-11-11T14:56:03.343 に答える
0

文字列を値のリストに変換するのを単に忘れていることに注意してください。これを行うには、組み込みのマップ関数を使用できます。

items = map(list, items)
于 2012-11-11T14:23:15.783 に答える