如何使用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')
答案 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)