问题
我需要从文本文件中填充列表。该列表应该是二维列表。我一直在为我的在线课程做一系列的活动,我似乎无法为它找到并制作正确的代码。任何帮助将非常感激。文本文件应如下所示:
TextFile.txt的
A B C D E F
G H I J K L
M N O P Q R
S T U V W X
预期输出
twoDlist = [
['A', 'B', 'C', 'D', 'E', 'F'],
['G', 'H', 'I', 'J', 'K', 'L'],
['M', 'N', 'O', 'P', 'Q', 'R'],
['S', 'T', 'U', 'V', 'W', 'X']
]
我当前的代码
twoDlist = []
f = open("textfile.txt")
r = f.readlines()
for i in r:
twoDlist.append(i.strip())
print(twoDlist)
答案 0 :(得分:2)
要修复现有代码,i.strip()
应替换为i.split()
演示:
twoDlist = []
f = open("textfile.txt")
r = f.readlines()
for i in r:
twoDlist.append(i.split())
print(twoDlist)
输出:
[['A', 'B', 'C', 'D', 'E', 'F'], ['G', 'H', 'I', 'J', 'K', 'L'], ['M', 'N', 'O', 'P', 'Q', 'R'], ['S', 'T', 'U', 'V', 'W', 'X']]
更好的方法是:
twoDlist = []
with open("textfile.txt") as f:
twoDlist = [line.split() for line in f]
print(twoDlist)
这样就可以为您处理文件管理。
答案 1 :(得分:1)
这个怎么样:
twoDlist = map(str.split, f)
更新: 正如zondo所指出的,如果您使用的是Python3,那么您应该:
twoDlist = list(map(str.split, f))
因为map将返回一个map对象而不是一个列表。