鱼C论坛

 找回密码
 立即注册
查看: 2459|回复: 5

[已解决]新年快乐 请问 reverse 和 reversed 的区别 求举例说明

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

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

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

x
  1. def palindrome(string):
  2.     list1 = list(string)
  3.     list2 = reversed(list1)  [color=Red]# 这里为什么用 reversed(list1),  而不用 list1.reverse()[/color]
  4.     if list1 == list(list2):
  5.         return '是回文联!'
  6.     else:
  7.         return '不是回文联!'
  8. print(palindrome('上海自来水来自海上'))
复制代码


    list2 = reversed(list1)  # 这里为什么用 reversed(list1),  而不用 list1.reverse()
reversed(list1) 返回的是迭代器对象 一堆乱码怎么比较????  然后程序还允许运行的。。。
最佳答案
2018-2-11 15:41:38
1.用 list1.reverse() 得到的是一个 NoneType 对象,而且翻转的是 list1 列表本身。
用 reversed(list1) 返回的是一个迭代器对象,可以转化成列表。这个列表的元素顺序与 list1 是反过来的。

2.迭代器对象与列表不能进行比较
  1. if list1 == list(list2):
复制代码

但是这一行里的 list(list) 将迭代器对象转换成列表了,所以列表与列表进行比较,当然可以运行了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-2-11 15:41:38 | 显示全部楼层    本楼为最佳答案   
1.用 list1.reverse() 得到的是一个 NoneType 对象,而且翻转的是 list1 列表本身。
用 reversed(list1) 返回的是一个迭代器对象,可以转化成列表。这个列表的元素顺序与 list1 是反过来的。

2.迭代器对象与列表不能进行比较
  1. if list1 == list(list2):
复制代码

但是这一行里的 list(list) 将迭代器对象转换成列表了,所以列表与列表进行比较,当然可以运行了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-11 15:45:16 | 显示全部楼层
°蓝鲤歌蓝 发表于 2018-2-11 15:41
1.用 list1.reverse() 得到的是一个 NoneType 对象,而且翻转的是 list1 列表本身。
用 reversed(list1)  ...

俩个字
哦不四个字
非常感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-11 15:48:27 | 显示全部楼层
°蓝鲤歌蓝 发表于 2018-2-11 15:41
1.用 list1.reverse() 得到的是一个 NoneType 对象,而且翻转的是 list1 列表本身。
用 reversed(list1)  ...

先把列表转换成  迭代器对象(翻转)  再把迭代器对象 变成列表
而用 list2 = list1.reverst()   这样 list2 有了返回值  就把 list1给整没了 是这么理解么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-11 15:57:17 | 显示全部楼层
屁哥 发表于 2018-2-11 15:48
先把列表转换成  迭代器对象(翻转)  再把迭代器对象 变成列表
而用 list2 = list1.reverst()   这样 lis ...

不是啊,列表 list1 还在,不过已经被翻转了。
但是这道题想要的是 list1 不变,再获得一个 里面元素是与 list1 反过来的列表。
所以用 reversed() 方法,这个方法不会将 list1 翻转。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-11 16:28:02 | 显示全部楼层
°蓝鲤歌蓝 发表于 2018-2-11 15:57
不是啊,列表 list1 还在,不过已经被翻转了。
但是这道题想要的是 list1 不变,再获得一个 里面元素是 ...

哦了  谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 20:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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