我正在尝试编写一个函数,它将在shell中打开一个.txt文件作为str列表。
该文件类似于:
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
有人可以帮忙吗?
答案 0 :(得分:4)
尝试使用list()
和extend()
。
items = [list(item.strip()) for item in items]
board_list.extend(items)
您也可以在一行中执行此操作,假设每行包含一个单词。我不确定你为什么要分开\t
所以这可能不适合你。
with open("data.txt") as board_file:
board_list = [list(line) for line in board_file.read().split('\n') if line]
答案 1 :(得分: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
答案 2 :(得分:0)
请注意,您只是忘记将字符串转换为值列表,为此您可以使用built-in map function:
items = map(list, items)