gpt4 book ai didi

python - python中的字符串到n*n矩阵

转载 作者:行者123 更新时间:2023-12-01 01:12:36 27 4
gpt4 key购买 nike

我是一名本科生,热爱编程。我今天遇到了一个问题,我不知道如何解决这个问题。我寻找“Python - 字符串到矩阵表示”( Python - string to matrix representation )来寻求帮助,但我仍然对这个问题感到困惑。

问题如下:

给定一串空格分隔的数字,创建一个 nxn 矩阵(一个二维列表,其中列数与行数相同)并返回它。该字符串将包含整数的完美平方数。 int() 和 split() 函数可能很有用。

示例:

输入:'1 2 3 4 5 6 7 8 9'

输出:[[1,2,3],[4,5,6],[7,8,9]]

示例 2:

输入:'1'

输出:[[1]]

我的回答:

import numpy as np
def string_to_matrix(str_in):
str_in_split = str_in.split()
answer = []
for element in str_in_split:
newarray = []
for number in element.split():
newarray.append(int(number))
answer.append(newarray)
print (answer)

测试结果如下:

Traceback (most recent call last):
File "/grade/run/test.py", line 20, in test_whitespace
self.assertEqual(string_to_matrix('1 2 3 4'), [[1,2],[3,4]])
AssertionError: None != [[1, 2], [3, 4]]

Stdout:
[[4]]

以及

Traceback (most recent call last):
File "/grade/run/test.py", line 15, in test_small
self.assertEqual(string_to_matrix('1 2 3 4'), [[1,2],[3,4]])
AssertionError: None != [[1, 2], [3, 4]]

Stdout:
[[4]]

以及

Traceback (most recent call last):
File "/grade/run/test.py", line 10, in test_one
self.assertEqual(string_to_matrix('1'), [[1]])
AssertionError: None != [[1]]

Stdout:
[[1]]

以及

Traceback (most recent call last):
File "/grade/run/test.py", line 25, in test_larger
self.assertEqual(string_to_matrix('4 3 2 1 8 7 6 5 12 11 10 9 16 15 14 13'), [[4,3,2,1], [8,7,6,5], [12,11,10,9], [16,15,14,13]])
AssertionError: None != [[4, 3, 2, 1], [8, 7, 6, 5], [12, 11, 10, 9], [16, 15, 14, 13]]

Stdout:
[[13]]

我仍然很困惑如何解决这个问题。非常感谢您的帮助!

最佳答案

假设您不想要 numpy 并且想要使用列表的列表:

def string_to_matrix(str_in):
nums = str_in.split()
n = int(len(nums) ** 0.5)
return list(map(list, zip(*[map(int, nums)] * n)))

nums = str_in.split() 按任意空格分割,n 是结果的边长,map(int, nums) 将数字转换为整数(从字符串),zip(*[map(int, nums)] * n) 将数字分组为 n 组, list(map(list, zip(*[map(int, nums)] * n)))zip 生成的元组转换为列表。

关于python - python中的字符串到n*n矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54701681/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com