python - 没有numpy的矩阵转置,错误:列表索引超出范围
问题描述
我想做一个矩阵的转置。我不想使用 numpy。我收到以下错误(以下代码)。任何帮助表示赞赏
matrix = [[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3]]
transposed = []
for i in range(7):
new=[]
for row in matrix:
new.append(row[i])
transposed.append(lst)
print(transposed)
错误:
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-106-856d3ec27942> in <module>()
6 new=[]
7 for row in matrix:
----> 8 new.append(row[i])
9 transposed.append(lst)
10 print(transposed)
IndexError: list index out of range
解决方案
您可以transpose
使用一个很酷的衬里列出列表zip
,并且*unpacking
:
m = [[1, 1, 1, 1, 1, 1, 1], [2, 2, 2, 2, 2, 2, 2], [3, 3, 3, 3, 3, 3, 3]]
list(zip(*m))
输出:
[(1, 2, 3), (1, 2, 3), (1, 2, 3), (1, 2, 3), (1, 2, 3), (1, 2, 3), (1, 2, 3)]
推荐阅读
- python - 用于数据处理的低端 GPU 与中端 CPU
- sql-server - 查找与 sys.dm_os_sys_info 中的列等效的 powershell CIM
- php - 如何将 PHP(My SQL) 中的后端数据导入 vuejs 应用程序
- ksqldb - 无法在 ksqlDB 中创建连接器
- c++ - 为什么编译为 WASM 时缺少引用指针的函数?
- python - 数据框到键/值字典作为元组/对象格式
- python - python字符串中的时间重叠
- django - PostgreSQL 中的 Django 全文 SearchVectorField 已过时
- summernote - Summernote v0.8.15 图标未加载
- python - 在 python prompt-toolkit-3.0.2 上添加键绑定会破坏建议和历史搜索