【问题标题】:Python 2d Array Input using Maps and Split使用映射和拆分的 Python 2d 数组输入
【发布时间】:2017-08-02 12:05:51
【问题描述】:

如何使用 map 和 split 将输入输入 python 二维数组,因为在竞争性编码竞赛中,输入是用空格给出的? 使用方法正确吗?

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

【问题讨论】:

  • 不清楚你要做什么,还请解释一下你的 ode 有什么作用。
  • 输入是这样给出的 1 2 3 4 , 4 5 6 7, 8 9 0 1。这里我用逗号代替换行符。我必须将其存储在 2d python 列表中。我使用了上面的代码,但它不起作用。

标签: python-3.x


【解决方案1】:

原来的问题有点混乱。如果你想将它存储在一个 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)

【讨论】:

    猜你喜欢
    • 2018-02-27
    • 1970-01-01
    • 2011-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多