|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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]
这样就得到啦(~ ̄▽ ̄)~ |
|