最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Python reversed反转序列并生成可迭代对象代码实例
时间:2020-10-22 编辑:袖梨 来源:一聚教程网
本篇文章小编给大家分享一下Python reversed反转序列并生成可迭代对象代码实例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
英文文档:
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 # 类型变成迭代器>>> list(a) [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] >>> a = ['a','b','c','d'] >>> a ['a', 'b', 'c', 'd'] >>> reversed(a) # 传入列表对象 >>> b = reversed(a) >>> b # 类型变成迭代器 >>> 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 "", line 1, in reversed(a) TypeError: argument to reversed() must be a sequence >>> type(a.scores) # 列表类型 # 重新定义类型,并为其定义__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) >>> reversed(a) # 实例变得可以反转 >>> a.scores # 反转后类型变成迭代器 >>> type(a.scores) >>> list(a.scores) [96, 93, 85, 78]
相关文章
- Golang ProtoBuf的基本语法详解 10-20
- Python识别MySQL中的冗余索引解析 10-20
- Python+Pygame绘制小球代码展示 10-18
- Python中的数据精度问题介绍 10-18
- Python随机值生成的常用方法介绍 10-18
- python3解压缩.gz文件分析 09-27