鱼C论坛

 找回密码
 立即注册
查看: 1863|回复: 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 对象转换为列表,代码如下:
    rev = list(reversed(matrix[i]))
    print(rev)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

所以当你尝试打印matrix[i].reverse()时,输出的是None。你可以通过下面的方法修正代码:
matrix = [[1, 2, 3],
          [4, 5, 6],
          [7, 8, 9]]
for i in range(len(matrix)):
    matrix[i].reverse()
    print(matrix[i])

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

这个修改后的代码将输出:
[3, 2, 1]
[6, 5, 4]
[9, 8, 7]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

所 ...

补充:如果不想修改源列表,可以使用 python 内置的 reversed() 方法,然后将 reversed() 返回的 reversed_iterator 对象转换为列表,代码如下:
    rev = list(reversed(matrix[i]))
    print(rev)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-24 05:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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