Python reversed反转序列并生成可迭代对象


Posted in Python onOctober 22, 2020

英文文档:

reversed(seq)

Return a reverse iterator. seq must be an object which has a __reversed__() method or supports the sequence protocol (the __len__() method and the __getitem__() method with integer arguments starting at 0).

反转序列生成新的可迭代对象

说明:

1. 函数功能是反转一个序列对象,将其元素从后向前颠倒构建成一个新的迭代器。

>>> a = reversed(range(10)) # 传入range对象
>>> a # 类型变成迭代器
<range_iterator object at 0x035634E8>
>>> list(a)
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

>>> a = ['a','b','c','d']
>>> a
['a', 'b', 'c', 'd']
>>> reversed(a) # 传入列表对象
<list_reverseiterator object at 0x031874D0>
>>> b = reversed(a)
>>> b # 类型变成迭代器
<list_reverseiterator object at 0x037C4EB0>
>>> list(b)
['d', 'c', 'b', 'a']

2. 如果参数不是一个序列对象,则其必须定义一个__reversed__方法。

# 类型Student没有定义__reversed__方法
>>> class Student:
  def __init__(self,name,*args):
    self.name = name
    self.scores = []
    for value in args:
      self.scores.append(value)

      
>>> a = Student('Bob',78,85,93,96)
>>> reversed(a) # 实例不能反转
Traceback (most recent call last):
 File "<pyshell#37>", line 1, in <module>
  reversed(a)
TypeError: argument to reversed() must be a sequence
>>> type(a.scores) # 列表类型
<class 'list'>


# 重新定义类型,并为其定义__reversed__方法
>>> class Student:
  def __init__(self,name,*args):
    self.name = name
    self.scores = []
    for value in args:
      self.scores.append(value)
  def __reversed__(self):
    self.scores = reversed(self.scores)

    
>>> a = Student('Bob',78,85,93,96)
>>> a.scores # 列表类型
[78, 85, 93, 96]
>>> type(a.scores)
<class 'list'>

>>> reversed(a) # 实例变得可以反转
>>> a.scores # 反转后类型变成迭代器
<list_reverseiterator object at 0x0342F3B0>
>>> type(a.scores)
<class 'list_reverseiterator'>

>>> list(a.scores)
[96, 93, 85, 78]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Python中使用模块的教程
Apr 27 Python
pyqt5简介及安装方法介绍
Jan 31 Python
用python与文件进行交互的方法
Mar 01 Python
tensorflow 使用flags定义命令行参数的方法
Apr 23 Python
pycharm中成功运行图片的配置教程
Oct 28 Python
python 实现调用子文件下的模块方法
Dec 07 Python
python 定时任务去检测服务器端口是否通的实例
Jan 26 Python
python tkinter基本属性详解
Sep 16 Python
Python3使用xml.dom.minidom和xml.etree模块儿解析xml文件封装函数的方法
Sep 23 Python
Tensorflow 卷积的梯度反向传播过程
Feb 10 Python
Python 整行读取文本方法并去掉readlines换行\n操作
Sep 03 Python
Numpy ndarray 多维数组对象的使用
Feb 10 Python
Python+OpenCV图像处理—— 色彩空间转换
Oct 22 #Python
Python类的继承super相关原理解析
Oct 22 #Python
Python+OpenCV图像处理——打印图片属性、设置存储路径、调用摄像头
Oct 22 #Python
Python基于内置函数type创建新类型
Oct 22 #Python
python使用ctypes库调用DLL动态链接库
Oct 22 #Python
Python通过len函数返回对象长度
Oct 22 #Python
python 还原梯度下降算法实现一维线性回归
Oct 22 #Python
You might like
Laravel框架中扩展函数、扩展自定义类的方法
2014/09/04 PHP
php常用字符串String函数实例总结【转换,替换,计算,截取,加密】
2016/12/07 PHP
js 方法实现返回多个数据的代码
2009/04/30 Javascript
各浏览器对link标签onload/onreadystatechange事件支持的差异分析
2011/04/27 Javascript
JS取得绝对路径的实现代码
2015/01/16 Javascript
javascript实现平滑无缝滚动
2020/08/09 Javascript
教你JS中的运算符乘方、开方及变量格式转换
2016/08/09 Javascript
BootStrap下拉框在firefox浏览器界面不友好的解决方案
2016/08/18 Javascript
javascript宿主对象之window.navigator详解
2016/09/07 Javascript
Vue组件BootPage实现简单的分页功能
2016/09/12 Javascript
JavaScript中无法通过div.style.left获取值的解决方法
2017/02/19 Javascript
JavaScript实现二叉树定义、遍历及查找的方法详解
2017/12/20 Javascript
JavaScript中Object值合并方法详解
2017/12/22 Javascript
Angular2学习笔记之数据绑定的示例代码
2018/01/03 Javascript
elementUI中Table表格问题的解决方法
2018/12/04 Javascript
如何使用puppet替换文件中的string
2018/12/06 Javascript
React中阻止事件冒泡的问题详析
2019/04/12 Javascript
javaScript实现一个队列的方法
2020/07/14 Javascript
vue3.0封装轮播图组件的步骤
2021/03/04 Vue.js
Python中使用copy模块实现列表(list)拷贝
2015/04/14 Python
讲解Python中运算符使用时的优先级
2015/05/14 Python
Python实现自定义函数的5种常见形式分析
2018/06/16 Python
python调用并链接MATLAB脚本详解
2019/07/05 Python
python虚拟环境的安装和配置(virtualenv,virtualenvwrapper)
2019/08/09 Python
Tensorflow读取并输出已保存模型的权重数值方式
2020/01/04 Python
python zip()函数的使用示例
2020/09/23 Python
CSS3 3D旋转rotate效果实例介绍
2016/05/03 HTML / CSS
GLAMGLOW格莱魅美国官网:美国知名的面膜品牌
2016/12/31 全球购物
SKECHERS官方旗舰店:美国舒适运动休闲品牌
2017/12/22 全球购物
澳大利亚礼品卡商店:Gift Card Store
2019/06/24 全球购物
村官学习十八大感想
2014/01/15 职场文书
80后婚前协议书范本
2014/10/24 职场文书
幼儿园学前班幼儿评语
2014/12/29 职场文书
2015年办公室工作总结范文
2015/03/31 职场文书
搞笑的婚礼主持词
2015/06/29 职场文书
合理化建议书范文
2015/09/14 职场文书