所以我有一个看起来像这样的文本文件:
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
答案 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'))
应该这样做。