你如何在python中拆分列表列表的元素?

时间:2014-03-28 23:35:00

标签: python list split strip

所以我有一个看起来像这样的文本文件:

abcd 
efghij
klm

我需要将其转换为二维列表。它看起来应该是这样的:

[['a', 'b', 'c', 'd'],
['e', 'f', 'g', 'h', 'i', 'j'],
['k', 'l', 'm']]
到目前为止,我已经设法得到了这个结果:

[["abcd"], ["efghij"], ["klm"]]

任何人都可以帮我弄清楚下一步应该是什么吗? 到目前为止,这是我的代码:

def readMaze(filename):
    with open(filename) as textfile:
        global mazeList
        mazeList = [line.split() for line in textfile]
        print mazeList

3 个答案:

答案 0 :(得分:4)

str.split()在空格上分割。 str.split('')分别对每个字符进行拆分。(显然我记错了,str.split('')ValueError投了"empty separator"

您只需从中构建list

text = """abcd
efghij
klm"""

mazelist = [list(line) for line in text.splitlines()]
# the splitlines call just makes it work since it's a string not a file
print(mazelist)
# [['a', 'b', 'c', 'd'], ['e', 'f', 'g', 'h', 'i', 'j'], ['k', 'l', 'm']]

答案 1 :(得分:2)

列出文件中的每一行:

with open('tmp.txt') as f:
    z = [list(thing.strip()) for thing in f]

答案 2 :(得分:1)

如上所述,您只需要从字符串中构建一个列表。

假设字符串保存在some_text中;

lines = some_text.split('\n')
my_list = []
for line in lines:
    line_split = list(line)
    my_list.append(line_split)

作为一线;

my_list = map(lambda item: list(item), some_text.split('\n'))

应该这样做。