Python:2维列表

时间:2016-05-08 01:50:09

标签: python list matrix python-3.3

问题

我需要从文本文件中填充列表。该列表应该是二维列表。我一直在为我的在线课程做一系列的活动,我似乎无法为它找到并制作正确的代码。任何帮助将非常感激。文本文件应如下所示:

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)

2 个答案:

答案 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对象而不是一个列表。