鱼C论坛

 找回密码
 立即注册
查看: 36|回复: 2

列表推导式作业运行失败

[复制链接]
发表于 前天 10:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1 matrix=[[1,2,3]
2        [4,5,6]
3       [7,8,9]]
4 diag = [i * matrix[i][i] for i in range(len(matrix))]
5 print(diag)
不知道为什么运行不了
vscode的运行显示如下,看不太懂为什么出问题,感谢帮助!



PS C:\Users\Administrator\Desktop>  c:; cd 'c:\Users\Administrator\Desktop'; & 'c:\Users\Administrator\AppData\Local\Programs\Python\Python310\python.exe' 'c:\Users\Administrator\.vscode\extensions\ms-python.debugpy-2024.0.0-win32-x64\bundled\libs\debugpy\adapter/../..\debugpy\launcher' '60180' '--' 'c:\Users\Administrator\AppData\Local\Temp\Rar$DIa5692.45949\x = 1.py'
c:\Users\Administrator\AppData\Local\Temp\Rar$DIa5692.45949\x = 1.py:1: SyntaxWarning: list indices must be integers or slices, not tuple; perhaps you missed a comma?
  matrix=[[1,2,3]
Traceback (most recent call last):
  File "c:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 196, in _run_module_as_main     
    return _run_code(code, main_globals, None,
  File "c:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "c:\Users\Administrator\.vscode\extensions\ms-python.debugpy-2024.0.0-win32-x64\bundled\libs\debugpy\__main__.py", line 39, in <module>
    cli.main()
  File "c:\Users\Administrator\.vscode\extensions\ms-python.debugpy-2024.0.0-win32-x64\bundled\libs\debugpy/..\debugpy\server\cli.py", line 430, in main
    run()
  File "c:\Users\Administrator\.vscode\extensions\ms-python.debugpy-2024.0.0-win32-x64\bundled\libs\debugpy/..\debugpy\server\cli.py", line 284, in run_file
    runpy.run_path(target, run_name="__main__")
  File "c:\Users\Administrator\.vscode\extensions\ms-python.debugpy-2024.0.0-win32-x64\bundled\libs\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_runpy.py", line 321, in run_path
    return _run_module_code(code, init_globals, run_name,
  File "c:\Users\Administrator\.vscode\extensions\ms-python.debugpy-2024.0.0-win32-x64\bundled\libs\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_runpy.py", line 135, in _run_module_code
    _run_code(code, mod_globals, init_globals,
  File "c:\Users\Administrator\.vscode\extensions\ms-python.debugpy-2024.0.0-win32-x64\bundled\libs\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_runpy.py", line 124, in _run_code
    exec(code, run_globals)
  File "c:\Users\Administrator\AppData\Local\Temp\Rar$DIa5692.45949\x = 1.py", line 1, in <module>
    matrix=[[1,2,3]
TypeError: list indices must be integers or slices, not tuple
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 前天 10:18 | 显示全部楼层
看到你的代码问题啦!主要错误是矩阵定义不完整和推导式缺少核心表达式。修改后的代码如下:


  1. matrix = [
  2.     [1, 2, 3],
  3.     [4, 5, 6],
  4.     [7, 8, 9]
  5. ]
  6. diag = [matrix[i][i] for i in range(len(matrix))]
  7. print(diag)  # 输出:[1, 5, 9]
复制代码


错误原因解析:
1. 矩阵定义不完整:你只写了 matrix=],中间缺少实际数据
2. 推导式缺少核心:漏写了 matrix[i][i] 这个关键表达式
3. 索引方式错误:二维数组应该用 matrix[i][j] 而不是 matrix[i,j]

错误日志关键点:
TypeError: list indices must be integers or slices, not tuple
这个错误是因为你尝试用元组(如 (i,i))当索引,而列表只接受整数索引

正确写法要点:
- 矩阵每行用逗号分隔,如: [1,2,3]
- 推导式结构: [元素 for 循环]
- 对角线元素位置:行索引=列索引

试试这个修正版,应该能正确输出对角线元素啦!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 前天 10:29 | 显示全部楼层
1、2每行后加个逗号,因为外面也是个大列表
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-23 06:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表