【发布时间】:2020-09-21 11:08:44
【问题描述】:
我需要创建一个函数,它可以采用未指定数量的参数(矩阵的元素)并返回相应的方阵。我已经使用以下方法实现了这一点。
def square_matrix(size, *elements):
numbers = list(elements)
if size ** 2 != len(numbers):
return "Number of elements does not match the size of the matrix"
else:
matrix = []
factor = 0
for i in range(0, size):
row = []
for j in range(factor * size, (factor + 1) * size):
row.append(numbers[j])
factor += 1
matrix.append(row)
i += 1
return matrix
print(square_matrix(3, 1, 2, 3, 4, 5, 6, 7, 8, 9))
# Output: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
虽然这种方法适用于较小的矩阵,但它似乎有些低效,因为它使用嵌套循环并且对我来说显得不必要的长。有没有更好/更简洁的实现方式?
【问题讨论】: