鱼C论坛

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

[已解决]零基础入门学习python最新版第25讲:列表(VII)

[复制链接]
发表于 2025-4-9 18:16:04 | 显示全部楼层 |阅读模式

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

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

x
第四题我用这个为什么不行了
matrix=[[1,2,3],[4,5,6],[7,8,9]]
rematrix=[y for x in matrix.sort(reverse=True) for y in x.sort(reverse=True)]
最佳答案
2025-4-10 09:04:56
因为list.sort()的返回值不是列表,你要用sorted(list),改成rematrix=[y for x in sorted(matrix,reverse=True) for y in sorted(x,reverse=True)]就行了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-4-9 18:16:50 | 显示全部楼层
第四题我用这个为什么不行了
matrix=,,]
rematrix=


问题分析:
您的代码存在以下问题:
1. 列表语法错误:缺少起始方括号和元素
2. 转置逻辑不完整:需要嵌套循环处理行列转换

正确写法:


  1. # 正确初始化二维列表
  2. matrix = [[1, 2, 3],
  3.           [4, 5, 6],
  4.           [7, 8, 9]]

  5. # 使用列表推导式转置矩阵
  6. rematrix = [[row[i] for row in matrix] for i in range(len(matrix[0]))]
复制代码


或者更直观的写法:

  1. rematrix = []
  2. for i in range(len(matrix[0])):
  3.     new_row = []
  4.     for row in matrix:
  5.         new_row.append(row[i])
  6.     rematrix.append(new_row)
复制代码


常见错误提醒:
  • 不要漏掉方括号 []
  • 二维列表每个子列表要用逗号分隔
  • 转置时要注意行列索引的对应关系 row[i]
  • 避免直接 rematrix = matrix.copy()(会导致浅拷贝问题)


如果需要查看完整课后习题答案,可以参考官方题解:https://fishc.com.cn/thread-XXXXXX.html(请替换为实际链接)

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

使用道具 举报

发表于 2025-4-10 09:04:56 | 显示全部楼层    本楼为最佳答案   
因为list.sort()的返回值不是列表,你要用sorted(list),改成rematrix=[y for x in sorted(matrix,reverse=True) for y in sorted(x,reverse=True)]就行了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-13 20:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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