鱼C论坛

 找回密码
 立即注册
查看: 3087|回复: 4

[已解决]列表倒置问题

[复制链接]
发表于 2020-2-19 21:29:11 | 显示全部楼层 |阅读模式

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

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

x
>>> name = [1, 2, 3, 4, 589, 'abc']
>>> name1 = name.reverse()
>>> name
['abc', 589, 4, 3, 2, 1]
>>> name1
>>> name.reverse()
>>> name
[1, 2, 3, 4, 589, 'abc']
>>> name.reverse()
>>> name
['abc', 589, 4, 3, 2, 1]
为什么name1是空的, name却被倒置了?
最佳答案
2020-2-20 10:05:58
若你想达到name1 = name.reverse()的目的的话,可以重写list里面的reverse方法,使其返回操作后的列表
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-19 21:32:07 | 显示全部楼层
reversed reverse 一个是有返回值,一个是对自身操作
自己看
https://blog.csdn.net/gymaisyl/article/details/83785853
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-19 21:32:54 | 显示全部楼层
本帖最后由 dlnb526 于 2020-2-19 21:37 编辑

.reverse() 是针对可迭代对象的一个方法(如列表),对列表进行 list.reverse()操作后,list本身将进行反转。
而name1 = name.reverse()是将操作赋值给name1,将得到NoneType类型。
s.reverse()
reverses the items of s in place

希望可以帮到你
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-20 09:56:06 | 显示全部楼层
reverse() 会改变原列表,并不会返回一个新的列表。

  1. >>> a = [1, 2, 3]
  2. >>> a.reverse()
  3. >>> a
  4. [3, 2, 1]
复制代码


如果想返回倒置后的列表,可以使用切片或 reversed() 内置函数:

  1. >>> a = [1, 2, 3, 4, 5]
  2. >>> b = list(reversed(a))
  3. >>> b
  4. [5, 4, 3, 2, 1]
  5. >>> c = a[::-1]
  6. >>> c
  7. [5, 4, 3, 2, 1]
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-2-20 10:05:58 | 显示全部楼层    本楼为最佳答案   
若你想达到name1 = name.reverse()的目的的话,可以重写list里面的reverse方法,使其返回操作后的列表
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-2 16:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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