【问题标题】:Read k matrices size nxm from stdin in Python在 Python 中从标准输入读取 k 个矩阵大小 nxm
【发布时间】:2016-09-24 17:26:09
【问题描述】:

我需要从 Python 中的标准输入读取 k 个大小为 nxm 的矩阵。 第一行必须是矩阵的数量 (k),然后是 -k 矩阵的描述:第一行是大小(n 和 m)除以空格的 2 个整数,然后是矩阵。

这是一个例子:

2
2 3
4 5 6
3 1 7
4 4
5 3 4 5
6 5 1 4
3 9 1 4
8 5 4 3

你能告诉我我该怎么做吗? 我可以在不考虑 m 的情况下这样做(对于 1 个矩阵):

n = int(input()) 
a = []
for i in range(n):
    a.append([int(j) for j in input().split()])

我发现了一些类似的问题,但没有使用标准输入(例如使用从文件读取)或未设置矩阵中字符串的大小。

【问题讨论】:

  • 在这个问题中没有使用标准输入,它是从文件中读取的。我发现了一些使用标准输入的问题,但它们没有帮助,因为矩阵中字符串的大小未在其中设置。

标签: python matrix stdin


【解决方案1】:

你走对了。尝试用简单的步骤打破它。基本上一个 n X m 矩阵是 n 行,每行都有 m 个元素(很明显)。如果我们有 n=1 那么我们有一条线,其中有 m 个元素。要接受这样的输入,我们只需

matrix = input().split()  #read the input
matrix = [ int(j) for j in matrix]   #matrix is now 1 x m list

或者简化一下

matrix = [ int(j) for j in input().split() ]

现在假设我们有 n 行,这意味着我们必须这样做 n 次,这只是循环 n 次,

matrix = [ [ int(j) for j in input().split() ] for i in n ]

更pythonic的方式是使用地图,

matrix= [ list( map(int, input().split() ) ) for i in range(n) ] 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-28
    • 2011-12-16
    • 2015-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多