reversed()函数是返回序列seq的反向访问的迭代子。参数可以是列表,元组,字符串,不改变原对象。

1》参数是列表

>>> l=[1,2,3,4,5]
>>> ll=reversed(l)
>>> l
[1, 2, 3, 4, 5]
>>> ll
<listreverseiterator object at 0x06A9E930>
>>> 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
<listreverseiterator object at 0x06A07E10>
>>> list(ll)#第一次
[6, 5, 4, 3]
>>> list(ll)#第二次为空,原因见本文最后
[]

3》参数是元组

>>> t=(4,5,6)
>>> tt=reversed(t)
>>> t
(4, 5, 6)
>>> tt
<reversed object at 0x06A07E50>
>>> tuple(tt)#第一次
(6, 5, 4)
>>> tuple(tt)#第二次为空,原因见本文最后
()

4》参数是字符串

>>> s='cba'
>>> ss=reversed(s)
>>> s
'cba'
>>> ss
<reversed object at 0x06A07E70>
>>> list(ss)#第一次
['a', 'b', 'c']
>>> list(ss)#第二次为空,原因见本文最后
[]

5》参数是字符串

>>> s='1234'
>>> ss=reversed(s)
>>> s
'1234'
>>> ss
<reversed object at 0x06A94490>
>>> ''.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.

总结:reversed()之后,只在第一次遍历时返回值。

python 内置函数 reversed()相关推荐

  1. python for everybody作业和测试答案_【计算题】编写函数,模拟 Python 内置函数 reversed() 。...

    [计算题]编写函数,模拟 Python 内置函数 reversed() . 更多相关问题 In California, there lives a pretty girl called Donna G ...

  2. Python内置函数--reversed()

    它将一个序列作为输入,并返回另一个序列,其中元素的顺序与给定输入序列的顺序相反.它不会对原始序列产生任何影响.也就是在原列表的基础上返回一个新的反向列表. 粗略的看看 class reversed(I ...

  3. python中reversed是什么意思_Python内置函数reversed()用法分析

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

  4. python 内置函数

    python 内置函数 Python内置(built-in)函数随着python解释器的运行而创建.在Python的程序中,你 可以随时调用这些函数,不需要定义. abs()     # 求一个数的绝 ...

  5. 这68个Python内置函数,建议你吃透!

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 整理 | 深度学习这件小事公众号 内置函数就是Python给你提供的, 拿来直接用的函 ...

  6. python 倒叙 数组_打基础一定要吃透这12类 Python 内置函数

    内置函数就是python给你提供的, 拿来直接用的函数,比如print.,input等.截止到python版本3.6.2 python一共提供了68个内置函数,我将它们分成 12 类,方便你学习. s ...

  7. 8个实用的Python内置函数

    python中有许多内置函数,不像print那么广为人知,但它们却异常的强大,用好了可以大大提高代码效率. 这次来梳理下8个好用的python内置函数. 1.set() 当需要对一个列表进行去重操作的 ...

  8. 8个超好用的Python内置函数

    python中有许多内置函数,不像print那么广为人知,但它们却异常的强大,用好了可以大大提高代码效率. 这次来梳理下8个好用的python内置函数. 1.set() 当需要对一个列表进行去重操作的 ...

  9. 8个超好用的Python内置函数,提升效率必备!

    python中有许多内置函数,不像print那么广为人知,但它们却异常的强大,用好了可以大大提高代码效率. 这次来梳理下8个好用的python内置函数. 1.set() 当需要对一个列表进行去重操作的 ...

最新文章

  1. java中的几种对象(PO,VO,DAO,BO,POJO)
  2. BZOJ 4002--有意义的字符串(矩阵乘法)
  3. 国产编程语言又造假,丢不起这人!
  4. poj 2528_2
  5. HDU - 3247 Resource Archiver (AC自动机,状压dp)
  6. leetcode--动态规划(Easy)
  7. linux监控脚本是否运行状态,Linux Shell脚本之通过json判断应用程序内部运行状态...
  8. vmware+centeros7安装JavaJDK
  9. 华为发布全新5G芯片:天罡和巴龙5000
  10. bootstrap 页面垂直居中_前端布局之——水平垂直居中
  11. js面向对象的程序设计 --- 上篇(理解对象)
  12. python中矩阵除法_Python numpy矩阵处理运算工具用法汇总
  13. ide进行php编程快捷键,PHP IDE phpstorm 快捷键
  14. c语言 格式字符,c语言的格式符
  15. 超级牛人华为工作十年离职感想
  16. Playing with ptrace原文
  17. 绿地五里桥 设计原型_绿地 · 黄浦滨江项目设计
  18. 【HTML5】html5中列表、表格、表单控件、浮动框架及结构化标签知识详解大全
  19. dubbo中标签的使用
  20. C# 实现WinForm窗口最小化到系统托盘代码

热门文章

  1. python生成6位数验证码_Python随机生成一个6位的验证码代码分享
  2. win10关闭任务栏窗口预览
  3. Domain-Adversarial Training of Neural Networks
  4. python webkit内核_360浏览器使用meta标签强制使用指定webkit内核 - meta强制用极速模式...
  5. 网络层协议和数据链路层协议
  6. PS 中图层为索引,修改成背景可编辑
  7. 【译】Executor, ExecutorService 和 Executors 间的不同
  8. 半导体功率器件静态参数测试仪系统 能测 IGBT. Mosfet. Diode. BJT......
  9. python正则匹配数字或者汉字
  10. BlockingQueue(阻塞队列)详解