Python 循环矩阵变换
因此,可以将矩阵的图像转换为该规则的行和列: 原始矩阵第一行中的值将成为图像矩阵最后一列的值。原始矩阵第二行中的值成为图像矩阵最后第二列的值…。依此类推…直到原始矩阵最后一行中的值成为图像矩阵第一列的值 作为图表,左手矩阵是原始矩阵,右手矩阵是其图像Python 循环矩阵变换,python,python-3.x,for-loop,Python,Python 3.x,For Loop,因此,可以将矩阵的图像转换为该规则的行和列: 原始矩阵第一行中的值将成为图像矩阵最后一列的值。原始矩阵第二行中的值成为图像矩阵最后第二列的值…。依此类推…直到原始矩阵最后一行中的值成为图像矩阵第一列的值 作为图表,左手矩阵是原始矩阵,右手矩阵是其图像 [['a', 'b', 'c'], [['g', 'd', 'a'], ['d', 'e', 'f'], ['h', 'e', 'b'], ['g', 'h', 'i']]
[['a', 'b', 'c'], [['g', 'd', 'a'],
['d', 'e', 'f'], ['h', 'e', 'b'],
['g', 'h', 'i']] ['i', 'f', 'c']]
假设Python中已经存在以下内容:
矩阵:表示数字矩阵的3 x 3列表(类似于上面的示例)
图像:与矩阵大小相同的列表,仅包含空的子列表(用于存储矩阵图像)
索引:包含整数0、1和2的列表(即矩阵和图像的有效索引位置)
根据上述规则,完成以下代码以返回矩阵的图像
for row in indexes:
for ____ in ____:
image[row].append(matrix[____] [____])
这些选择包括:
row
col
0
1
2
len(indexes)
indexes
2 - col
2 - row
col - 2
row - 2
len(matrix)
任何选项都可以在空白点上使用。在学习python之后,我的直觉告诉我,我应该尝试回答这样的问题:
for row in indexes:
for col in indexes:
image[row].append([col][row])
我认为将会发生的是,它将获取所有的值,并将它们切换为row->column和column->row。我是有点正确还是完全错了?这有点棘手,因为它与正常的转置不完全一样。但这应该对你有用:
matr = [['a', 'b', 'c'],
['d', 'e', 'f'],
['g', 'h', 'i']]
rotated = [list(reversed(x)) for x in zip(*matr)]
print(rotated)
输出:
[['g','d','a'],['h','e','b'],['i','f','c']]
或者使用for循环执行相同的操作:
matr = [['a', 'b', 'c'],
['d', 'e', 'f'],
['g', 'h', 'i']]
rotated = []
for x in zip(*matr):
rotated.append(list(reversed(x)))
print(rotated)
输出:
[['g','d','a'],['h','e','b'],['i','f','c']]
请回答你的问题,以澄清你到底在问什么。您可以直接测试代码的结果是否与所需的输出匹配,从而测试结果是否正确。您是否在询问这是否解决了问题,或者如何改变它来解决问题?请注意,字母
'g'
从[2][0]
开始,到[0][0]
结束,因此行/列的简单交换是不正确的。另请参见。是否可以使用forloop?因为这就是我的目标