鱼C论坛

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

[已解决]reverse()问题

[复制链接]
发表于 2023-3-17 17:34:31 | 显示全部楼层 |阅读模式

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

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

x
matrix = [[1, 2, 3],
          [4, 5, 6],
          [7, 8, 9]]
for i in range(len(matrix)):
    print(matrix[i].reverse())

我想把子列表里面的数都反转过来,反转成[3,2,1],[6,5,4],[9,8,7],为什么写成上面这个样子后结果显示为None,None,None呢?
请大神赐教,谢谢。
最佳答案
2023-3-17 17:55:13
isdkz 发表于 2023-3-17 17:37
你好!这个问题是因为reverse()函数没有返回一个新的列表,而是直接修改了原来的列表,并返回None。

所 ...

补充:如果不想修改源列表,可以使用 python 内置的 reversed() 方法,然后将 reversed() 返回的 reversed_iterator 对象转换为列表,代码如下:
  1.     rev = list(reversed(matrix[i]))
  2.     print(rev)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-3-17 17:37:44 | 显示全部楼层
你好!这个问题是因为reverse()函数没有返回一个新的列表,而是直接修改了原来的列表,并返回None。

所以当你尝试打印matrix[i].reverse()时,输出的是None。你可以通过下面的方法修正代码:

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


这样,matrix[i].reverse()会直接修改matrix[i],然后你可以打印出修改后的matrix[i]。

这个修改后的代码将输出:

  1. [3, 2, 1]
  2. [6, 5, 4]
  3. [9, 8, 7]
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-17 17:55:13 | 显示全部楼层    本楼为最佳答案   
isdkz 发表于 2023-3-17 17:37
你好!这个问题是因为reverse()函数没有返回一个新的列表,而是直接修改了原来的列表,并返回None。

所 ...

补充:如果不想修改源列表,可以使用 python 内置的 reversed() 方法,然后将 reversed() 返回的 reversed_iterator 对象转换为列表,代码如下:
  1.     rev = list(reversed(matrix[i]))
  2.     print(rev)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-28 06:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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