鱼C论坛

 找回密码
 立即注册
查看: 2226|回复: 1

[学习笔记] reverse()和reversed()的区别

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

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

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

x
本帖最后由 233倔强不秃 于 2020-3-1 23:45 编辑

reverse()和reversed()的作用都是“颠倒”,而他们有什么不同呢?

1.作用的对象不同:
reverse()作用的对象是列表,也就是只有列表可以调用这个方法,元组和字符串统统不能调用这个方法。
reversed()的作用对象则是序列,即列表,元组,字符串都可以调用,甚至还有range



2.使用的方法不同,或者说使用的格式不同:
reverse()的使用格式如:list1.reverse()
reversed()的格式为:reversed(seq)
补充一点:
因为reversed()是函数,reverse()是方法,这两者本质的区别不一样,调用的格式也不一样。


3.返回值不同:
reverse()没有返回值
reversed(seq)则返回一个反转的迭代器。所以当你想反转一个字符串时,reversed(str1)却发现了这样一句话【<reversed object at 0x00000261A54C1E48>】,这时是返回了反转的迭代器的地址。
所以如果想打印反转后的结果,需要这样来写:print(list(reversed(str1))),而且只能用list才能打印出来,我现在也没搞懂是为什么。(希望有小伙伴能在下面帮忙解答一下)

我们如果用reversed()方法反转序列,想得到一个字符串或者元组的时候,却发现只能得到一个列表,这样显然是不尽人意的。所以我们可以用一种最简单的方法来得到一个反转的序列。
利用分片,如:
s = 'fishc'
s[::-1]
这样就得到啦(~ ̄▽ ̄)~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-28 20:19:36 | 显示全部楼层
仰视!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 06:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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