Python内置函数reversed()用法分析
这篇文章主要介绍了Python内置函数reversed()用法,结合实例形式分析了reversed()函数的功能及针对序列元素相关操作技巧与使用注意事项,需要的朋友可以参考下

reversed()函数是返回序列seq的反向访问的迭代器。参数可以是列表,元组,字符串,不改变原对象。
1》参数是列表
>>>
l=[1,2,3,4,5]
>>>
ll=reversed(l)
>>> l
[1, 2, 3, 4, 5]
>>> ll
>>> for i in
ll:#第一次遍历
... print i,
...
5 4 3 2 1
>>> for i in
ll:第二次遍历为空,原因见本文最后
... print i
...
2》参数是列表
>>> l=[3,4,5,6]
>>>
ll=reversed(l)
>>> l
[3, 4, 5, 6]
>>> ll
>>> list(ll)#第一次
[6, 5, 4, 3]
>>>
list(ll)#第二次为空,原因见本文最后
[]
3》参数是元组
>>> t=(4,5,6)
>>>
tt=reversed(t)
>>> t
(4, 5, 6)
>>> tt
>>>
tuple(tt)#第一次
(6, 5, 4)
>>>
tuple(tt)#第二次为空,原因见本文最后
()
4》参数是字符串
>>> s='cba'
>>>
ss=reversed(s)
>>> s
'cba'
>>> ss
>>> list(ss)#第一次
['a', 'b', 'c']
>>>
list(ss)#第二次为空,原因见本文最后
[]
5》参数是字符串
>>> s='1234'
>>>
ss=reversed(s)
>>> s
'1234'
>>> ss
>>>
''.join(ss)#第一次
'4321'
>>>
''.join(ss)#第二次为空,原因见本文最后
''
为什么reversed()之后,第二次for循环或第二次list()或第二次tuple()或第二次join()得到的结果为空?我们以第2个例子具体说明一下:
That's because reversed creates an iterator, which is already spent
when you're calling list(ll) for the second time.
The reason is that ll is not the reversed list itself, but a
listreverseiterator. So when you call list(ll) the first time, it
iterates over ll and creates a new list from the items output from
that iterator.When you do it a second time, ll is still the
original iterator and has already gone through all the items, so it
doesn't iterate over anything, resulting in an empty list.
小编来翻译一下:
这是因为反向创建了一个迭代器,该迭代器在第二次调用列表(LL)时已经使用过了。
其原因就是ll不是反转列表本身,而是一个列表反向迭代器。所以当你第一次调用列表(ll),它会遍历ll并且创建一个新的列表从项目输出迭代器。当你再进行一次,ll仍然是原来的迭代器,已经经历了所有的项目,所以它不会再遍历什么,这就造成了空列表。
总结:reversed()之后,只在第一次遍历时返回值。
Python内置函数reversed()用法分析的更多相关文章
- python内置函数getattr用法
class Tests(object): #定义类 aaa = '10' #定义变量 def test(self): #定义类的方法test ...
- 【Python】Python内置函数dir详解
1.命令介绍 最近学习并使用了一个python的内置函数dir,首先help一下: 复制代码代码如下: >>> help(dir)Help on built-in function ...
- 学习过程中遇到的python内置函数,后续遇到会继续补充进去
1.python内置函数isinstance(数字,数字类型),判断一个数字的数字类型(int,float,comple).是,返回True,否,返回False2.python内置函数id()可以查看 ...
- Python 内置函数sorted()在高级用法
对于Python内置函数sorted(),先拿来跟list(列表)中的成员函数list.sort()进行下对比.在本质上,list的排序和内建函数sorted的排序是差不多的,连参数都基本上是一样的. ...
- 为什么需要激活函数 为什么需要归一化 python内置函数:enumerate用法总结
为什么需要激活函数 为什么需要归一化 python内置函数:enumerate用法总结 待办 激活函数的用途(为什么需要激活函数)? 如果不用激励函数(其实相当于激励函数是f(x) = x),在这种情 ...
- Python内置函数进制转换的用法
使用Python内置函数:bin().oct().int().hex()可实现进制转换. 先看Python官方文档中对这几个内置函数的描述: bin(x)Convert an integer numb ...
- Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)
使用Python内置函数:bin().oct().int().hex()可实现进制转换. 先看Python官方文档中对这几个内置函数的描述: bin(x)Convert an integer numb ...
- Python之路(第八篇)Python内置函数、zip()、max()、min()
一.python内置函数 abs() 求绝对值 例子 print(abs(-2)) all() 把序列中每一个元素做布尔运算,如果全部都是true,就返回true, 但是如果是空字符串.空列表也返回t ...
- Python之路Python内置函数、zip()、max()、min()
Python之路Python内置函数.zip().max().min() 一.python内置函数 abs() 求绝对值 例子 print(abs(-2)) all() 把序列中每一个元素做布尔运算, ...
随机推荐
- JAVA 从打包成jar到导入到IntelliJ IDEA使用
一. 使用常用命令打包: jar -cvf 目标jar包名称 待打包路径 例:jar -cvf myjar.jar com/dn/Demo 二. 打开IntelliJ IDEA (2017.2版本) ...
- UVA 1482 SG打表
打出SG表来可以很容易的发现i为偶数时 SG[i]=i/2 i为奇数时 SG[i]=SG[i/2] #include<bits/stdc++.h> typedef long long ll ...
- NIM 1
博弈论(一):Nim游戏 重点结论:对于一个Nim游戏的局面(a1,a2,...,an),它是P-position当且仅当a1^a2^...^an=0,其中^表示位异或(xor)运算. Nim游戏是博 ...
- Nginx概念
这篇文章只是单纯的介绍nginx以及一些相关概念,有的概念在实际应用中不会用到,不理解也没有关系,这不影响我们学习nginx. Nginx是什么 如果你知道http协议和httpd是什么,那你就会容易 ...
- c++使用初始化列表来初始化字段
#include<iostream> using namespace std; class Student1 { private: int _a; int _b; public: void ...
- ssh远程连接centos7故障排除
导致故障的原因在两个方面 1.网络问题---物理链路就不通可以通过在客户端 telnet目标主机地址,例如:telnet 192.168.1.107 22 千万别忘了端口号!!!,如果通了还连不上则按 ...
- HDU-4300-Clairewd's message(扩展KMP)
链接: https://vjudge.net/problem/HDU-4300 题意: Clairewd is a member of FBI. After several years conceal ...
- Acwing-203-同余方程(扩展欧几里得)
链接: https://www.acwing.com/problem/content/205/ 题意: 求关于x的同余方程 ax ≡ 1(mod b) 的最小正整数解. 思路: 首先:扩展欧几里得推导 ...
- 题解 【NOIP2011】计算系数
[NOIP2011]计算系数 Description 给定一个多项式 (ax+by)^k ,请求出多项式展开后 x^n * y^m 项的系数. Input 共一行,包含 5 个整数,分别为 a,b,k ...
- 创建基本的webpack4.x项目
1.步骤 1)运行npm init -y 快速初始化项目 2)在项目根目录创建src源代码目录和dist产品目录,目录结构 webpack4.x-base |dist |src |index.html ...