使用地图和分割的Python 2d数组输入

时间:2017-03-12 12:19:13

标签: python-3.x

如何使用map和split将输入输入到python 2d数组中,因为在竞争激烈的编码竞争中,输入是通过空间给出的? 这是正确的使用方式吗?

a = numpy.empty((N,M))
for i in range(N):
  b=list(map(int,input().split()))
  a.append(b)
  a.append('\n')

1 个答案:

答案 0 :(得分:2)

原来的问题有点困惑。如果你想将它存储在一个numpy数组中,我倾向于使用np.genfromtxt

import io
import numpy as np

input = b"""\
1 2 3 4
5 6 7 8"""
if __name__ == '__main__':
    print(np.genfromtxt(io.BytesIO(input)))

另一方面,如果你想将它存储在列表列表中(虽然我不明白为什么这比numpy数组更好),这种方法应该有效:

import io

input = b"""\
1 2 3 4
5 6 7 8"""
if __name__ == '__main__':
    list_of_lists = [[int(elt) for elt in line.split()] for line in io.BytesIO(input)]
    print(list_of_lists)