str列表清单

时间:2012-11-11 14:13:54

标签: python string

我正在尝试编写一个函数,它将在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

有人可以帮忙吗?

3 个答案:

答案 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)