Python3内置函数——reversed() = 翻转我的世界
认识reversed单词
reversed 英[rɪ'vɜ:st] 美[rɪ'vɜst]
adj. 颠倒的;相反的;(判决等)撤销的
v. 颠倒(reverse的过去式和过去分词);翻转
help(reversed)
Help on class reversed in module builtins: class reversed(object)
| reversed(sequence) -> reverse iterator over values of the sequence
|
| Return a reverse iterator
|
| Methods defined here:
|
| __getattribute__(self, name, /)
| Return getattr(self, name).
|
| __iter__(self, /)
| Implement iter(self).
|
| __length_hint__(...)
| Private method returning an estimate of len(list(it)).
|
| __new__(*args, **kwargs) from builtins.type
| Create and return a new object. See help(type) for accurate signature.
|
| __next__(self, /)
| Implement next(self).
|
| __reduce__(...)
| Return state information for pickling.
|
| __setstate__(...)
| Set state information for unpickling.
reversed的英文解释
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).
reversed()函数的输入时任意一个序列,返回一份倒序后的序列副本。通常用于for循环需要倒序循环时。
eg:
seq = [1, 2, 3, 4, 5, 6, 7, 8]
for item in reversed(seq):
print(item, end=" ")
结果:
8 7 6 5 4 3 2 1
reversed()的功能:翻转对象
- 翻转函数reversed()调用参数类中的__reversed__()函数。
- 函数功能是反转一个序列对象,将其元素从后向前颠倒构建成一个新的迭代器
reversed()的应用
应用1: 序列的倒序循环
seq1 = list(range(8))
print("seq1为: {}".format(seq1))
for i in reversed(seq1):
print(i, end=' ')
结果:
seq1为: [0, 1, 2, 3, 4, 5, 6, 7]
7 6 5 4 3 2 1 0
seq2 = ['a', 'b', 'c', 'd']
print("seq2为: {}".format(seq2))
for i in reversed(seq2):
print(i, end=' ')
结果:
seq2为: ['a', 'b', 'c', 'd']
d c b a
应用2:
如果一个对象不存在__reversed__()方法,那么,reversed()会调用__len__()和__getitem__()生成倒序序列。
class MySeq():
def __len__(self):
return 6
def __getitem__(self, index):
return 'y{0}'.format(index) for item in reversed(MySeq()):
print(item, end=', ')
结果:
y5, y4, y3, y2, y1, y0,
应用3:
如果我们需要定制或者优化倒序过程,我们只需重写__reversed__()方法。
class MySeq():
def __len__(self):
return 6
def __getitem__(self, index):
return 'y{0}'.format(index)
class MyReversed(MySeq):
def __reversed__(self):
return 'hello, bright!' for item in reversed(MyReversed()): # 调用重写的__reversed__()方法。
print(item, end=' ')
结果:
h e l l o , b r i g h t !
或者:
class MySeq():
def __len__(self):
return 6
def __getitem__(self, index):
return 'y{0}'.format(index)
class MyReversed(MySeq):
def __reversed__(self):
return reversed('hello, bright!') for item in reversed(MyReversed()):
print(item, end=' ')
结果:
! t h g i r b , o l l e h
应用4:
如果reversed()的参数不是一个序列对象,我们应该为该对象定义一个__reversed__方法,这个时候就可以使用reversed()函数了。
class MyScore:
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) x = MyScore("bright", 66, 77, 88, 99, 100) print('我的名字: {0}, \n我的成绩: {1}'.format(x.name, x.scores))
print('我的成绩按降序排列:{}'.format(list(reversed(x.scores))))
结果:
我的名字: bright,
我的成绩: [66, 77, 88, 99, 100]
我的成绩按降序排列:[100, 99, 88, 77, 66]
知识在于点点滴滴的积累,我会在这个路上Go ahead,
后记:打油诗一首
适度锻炼,量化指标
考量天气,设定目标
科学锻炼,成就体标
高效科研,实现学标
Python3内置函数——reversed() = 翻转我的世界的更多相关文章
- python3内置函数大全(顺序排列)
python3内置函数大全 内置函数 (1)abs(), 绝对值或复数的模 1 print(abs(-6))#>>>>6 (2)all() 接受一个迭代器,如果迭代器的所有 ...
- python3内置函数大全
由于面试的时候有时候会问到python的几个基本内置函数,由于记不太清,就比较难受,于是呕心沥血总结了一下python3的基本内置函数 Github源码: https://github. ...
- Python内置函数reversed()用法分析
Python内置函数reversed()用法分析 这篇文章主要介绍了Python内置函数reversed()用法,结合实例形式分析了reversed()函数的功能及针对序列元素相关操作技巧与使用注意事 ...
- Python3内置函数、各数据类型(int/str/list/dict/set/tuple)的内置方法快速一览表
Python3内置函数 https://www.runoob.com/python3/python3-built-in-functions.html int https://www.runoob.co ...
- python3内置函数详解
内置函数 注:查看详细猛击这里 abs() 对传入参数取绝对值 bool() 对传入参数取布尔值, None, 0, "",[],{},() 这些参数传入bool后,返回False ...
- python 之 python3内置函数
一. 简介 python内置了一系列的常用函数,以便于我们使用,python英文官方文档详细说明:点击查看, 为了方便查看,将内置函数的总结记录下来. 二. 使用说明 以下是Python3版本所有的内 ...
- python3 内置函数详解
内置函数详解 abs(x) 返回数字的绝对值,参数可以是整数或浮点数,如果参数是复数,则返回其大小. # 如果参数是复数,则返回其大小. >>> abs(-25) 25 >&g ...
- Python3 内置函数补充匿名函数
Python3 匿名函数 定义一个函数与变量的定义非常相似,对于有名函数,必须通过变量名访问 def func(x,y,z=1): return x+y+z print(func(1,2,3)) 匿名 ...
- python3 内置函数
'''iter()和next()'''# lst = [1, 2, 3]# it = iter(lst)# print(it.__next__())# print(it.__next__())# pr ...
随机推荐
- Django配置图片上传
本文首先实现django中上传图片的过程,然后解决富文本编辑器文件上传的问题. 一. 上传图片 1.在 settings.py 中配置MEDIA_URL 和 MEDIA_ROOT 在 D:\blog ...
- RNN(1) ------ “理解LSTM”(转载)
原文链接:http://www.jianshu.com/p/9dc9f41f0b29 Recurrent Neural Networks 人类并不是每时每刻都从一片空白的大脑开始他们的思考.在你阅读这 ...
- C++ virtual函数重写,在继承的时候没有在函数前写virtual关键字也依然是虚函数吗?
比如: class Base { Base() {}; ~Base() {}; virtual void Init(); }; class Derived:public Base { virtual ...
- Ex 5_28 Alice想要举办一个舞会..._第十次作业
根据总人数建立顶点数量为总人数的无向图,顶点之间有边相连表示两个人相互认识,没有边则表示不认识.对于每一个顶点v,设d(v)表示顶点的度,若d(v)<5,即v认识的人数少于5,则不邀请v,若d( ...
- [学习笔记]Java代码中各种类型变量的内存分配机制
程序运行时,我们最好对数据保存到什么地方做到心中有数.特别要注意的是内存的分配.有六个地方都可以保存数据: (1) 寄存器 这是最快的保存区域,因为它位于和其他所有保存方式不同的地方:处理器内部.然而 ...
- linux unzip 中文乱码解决方法
引自:https://blog.csdn.net/abyjun/article/details/48344379 unzip -O CP936 xxx.zip (用GBK, GB18030也可以)
- IntelliJ IDEA 下的svn配置及使用的非常详细的图文总结
首先,使用的时候,自己得先在电脑上安装个小乌龟.也就是svn啦. 第一步安装小乌龟. 如下: 具体安装好像没什么具体要求,一路next,就好. 如上图箭头所示,在安装 TortoiseSVN 的时候, ...
- Deep Learning系统实训之三:卷积神经网络
边界填充(padding):卷积过程中,越靠近图片中间位置的像素点越容易被卷积计算多次,越靠近边缘的像素点被卷积计算的次数越少,填充就是为了使原来边缘像素点的位置变得相对靠近中部,而我们又不想让填充的 ...
- PHP抽象类
<?php /* * abstract * 抽象类: * 1.至少有一个抽象方法(没有具体实现的方法) * 2.不能被实例化,可以被继承 * 3.抽象类可以有子抽象类 * 相对于接口: * 1. ...
- python接口自动化测试五:乱码、警告、错误处理
乱码: 以content字节流输出,解码成utf-8: print(r.encoding) # 查看返回的编码格式: 去掉Warning警告: import urllib3 urllib3.dis ...