【问题标题】:Inputs from a user for matrix operations in python来自用户的输入,用于 python 中的矩阵运算
【发布时间】:2020-11-22 14:26:55
【问题描述】:

这是我在 Python 中使用列表推导添加 2 个矩阵的代码:

row, col = map(int, input().split())

mat1 = [[list(map(int, input().split())) for i in range(row)] for j in range(col)]
for i in range(row):
    for j in range(col):
        print(mat1[i][j], end=" ")
    print()

print("\n")

mat2 = [[list(map(int, input().split())) for i in range(row)] for j in range(col)]
for i in range(row):
    for j in range(col):
        print(mat2[i][j], end=" ")
    print()

print("\n")

result = [[0 for i in range(col)] for j in range(row)]
for i in range(row):
    for j in range(col):
        result[i][j] = mat1[i][j] + mat2[i][j]

print("\n")

for i in range(row):
    for j in range(col):
        print(result[i][j], end = " ")
    print()

我可以在不接受上述表格输入的情况下运行此代码,但我在大学时遇到了编码挑战,他们以以下形式提供输入:

2 3
5 -1 3
19 8 4
4 5 -6
1 -2 12

我无法获取输入并将它们放入矩阵中。

【问题讨论】:

  • 你不需要为column使用第二个for loop,你只需要row for loop.Bcs如果你得到像3 4 6这样的输入然后你拆分数据你最终会得到第一行。所以删除第二个 for 循环并尝试

标签: python list matrix 2d


【解决方案1】:

您不需要使用第二个 for 循环。

 mat1 = [list(map(int, input().split(' '))) for i in range(row) ]
 

输入

 2 6 9
-1 5 10

输出

print(mat1)

 [[2, 6, 9], [-1, 5, 10]]

【讨论】:

    【解决方案2】:

    您可以将输入流视为使用\n 符号分成几行的连续字符串。 为了将 txt 文件作为输入快速传递给您的程序,您可以在 cmd 控制台/unix 终端中执行以下操作:

    在 Linux/Windows 中:

    python code.py < input.txt

    您的代码在code.py 中,您在input.txt 文件中的建议输入和\n 在文件末尾。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-17
      • 2014-04-22
      • 2020-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-16
      • 1970-01-01
      相关资源
      最近更新 更多