有没有更有效的方法来创建这个2D列表?

时间:2014-04-04 07:29:32

标签: python arrays list loops

我正在接收一个包含多行字符的文件,如下所示:

oeoeoeo
eoeoeoe
oeoeoeo
eoeoeoe
oeoeoeo

我想将它们放入2D列表中,如下所示:

[['o', 'e', 'o', 'e', 'o', 'e', 'o'],
 ['e', 'o', 'e', 'o', 'e', 'o', 'e'],
 ['o', 'e', 'o', 'e', 'o', 'e', 'o'],
 ['e', 'o', 'e', 'o', 'e', 'o', 'e'],
 ['o', 'e', 'o', 'e', 'o', 'e', 'o']]

这就是我目前正在实现的目标:

map2dArray = []

for line in input_file:
    lineArray = []
    for character in line:
        lineArray.append(character)
    map2dArray.append(lineArray)

在Python中有更优雅的方法吗?

1 个答案:

答案 0 :(得分:4)

是的,在一行中:

map(list, input_file)

或在Python 3中:

list(map(list, input_file))

这通常会在结果中留下换行符,所以如果你想摆脱那些:

[list(line.strip('\n')) for line in input_file]