Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中for循环中的列堆栈矩阵_Python_Arrays_For Loop_Matrix - Fatal编程技术网

Python中for循环中的列堆栈矩阵

Python中for循环中的列堆栈矩阵,python,arrays,for-loop,matrix,Python,Arrays,For Loop,Matrix,我有一些starter矩阵A=[1,2,3,4],我想实现一个循环,它会给starter矩阵加一个幂 for i in range(3,0,-1) A**i 当这个循环发生时,我还希望将矩阵列堆栈为B=[[1,8,27,64],[1,4,9,16],[1,2,3,4],[1,1,1]]。 如何实现这一点?更新答案: 我认为这段代码实际上更好地回答了您的问题(例如,使用生成器矩阵/行)。列表理解逻辑没有改变,我们在这里所做的只是定义x列表,而不是从范围生成 starter_row = [

我有一些starter矩阵A=[1,2,3,4],我想实现一个循环,它会给starter矩阵加一个幂

for i in range(3,0,-1)
    A**i
当这个循环发生时,我还希望将矩阵列堆栈为B=[[1,8,27,64],[1,4,9,16],[1,2,3,4],[1,1,1]]。
如何实现这一点?

更新答案:

我认为这段代码实际上更好地回答了您的问题(例如,使用生成器矩阵/行)。列表理解逻辑没有改变,我们在这里所做的只是定义
x
列表,而不是从
范围生成

starter_row = [1, 2, 3, 4]
num_rows = 4

result = [
    [x ** y for x in starter_row] for y in range(num_rows - 1, -1, -1)
]

print(result)
输出(如下所示):


原始答案:

您可以通过列表理解来实现这一点:

row_len = 4
num_rows = 4

result = [
    [x ** y for x in range(1, row_len + 1)] for y in range(num_rows - 1, -1, -1)
]

print(result)
输出:

[[1, 8, 27, 64], [1, 4, 9, 16], [1, 2, 3, 4], [1, 1, 1, 1]]
此实现的好处是,您可以根据需要动态调整尺寸。如果你总是需要一个X乘X的矩阵,你可以简化一点,只需为大小设置一个变量,列表理解就会保持不变

此外,如果要颠倒行的顺序,只需将
y
范围生成器更改为
range(num_rows)

[[1, 8, 27, 64], [1, 4, 9, 16], [1, 2, 3, 4], [1, 1, 1, 1]]