第十一章函数使用_迭代器

今日内容

函数名的第一类对象及使用

f-strings

迭代器

函数名的第一类对象及使用

  • 函数名可以当做值,赋值给变量

  • 函数名可以当做容器内的元素

  • 函数名可以当做函数的参数

  • 函数名可以当做函数的返回值

f-strings

f-strings
#     f"{变量名}"
#     F"{变量名}"
#     f"""{变量名}"""
#     f"{input()}"
#     f"{3 if 3>2 else 2}"
#     lst = [1,2,3,4,5]
#     f"{lst[4]}"
#     f"{lst[-1]}"
#     f"{dic['key1']}"

迭代器

可迭代对象:

只要具有__iter__()方法就是一个可迭代对象

迭代器:

具有__iter__()和__next__()两个方法才是迭代器

lst = [1, 2, 3, 4]
# l = iter(lst) #变成迭代器,建议使用iter()
l = lst.__iter__() # 将可迭代对象转换成迭代器
print(l.__nexr__()) # 获取一个值
print(l.__nexr__()) # 每一行获取一个值,当超过索引的时候会报错,并且只能从头到尾,不可逆

迭代器的优点

  • 惰性机制 ---节省空间

迭代器的缺点

  • 1.不能直接查看值,迭代器查看到的是一个迭代器的内存地址

  • 2.一次性,用完就没有了

  • 3.不能逆行

    时间换空间: 迭代器就是节省了空间,但是取值时间较长

    空间换时间: 容器存储大量的元素,取值时 取值时间短,但是容器占用空间较大

    迭代器是基于上一次停留的位置,进行取值

    可迭代对象:具有iter()方法就是一个可迭代对象

    迭代器:具有iter()和next()方法就是一个迭代器
for循环本质
# while True:
  #     try:
  #         print(l.__next__())
  #     except StopIteration:
  #         break
# 里面有一个捕捉异常的机制,所以取值不会超
python3和python2的区别:
# pyhton3:
  # iter()和 __iter__() 都有
  # next()和__next__()都有

# python2:
  # iter()
  # next()

最新文章

  1. Code Conventions for the Java
  2. static与并发
  3. MVVM和MVC的区别
  4. SU unisam命令学习
  5. OSG动画学习
  6. 软件开发过程中的审查 (Review)
  7. Give My Text Back
  8. 程序进入 EXPORT App_Fault_ISR的原因及措施:
  9. 打开新窗口(window.open)
  10. Ubuntu 定时任务中的环境变量设置
  11. Healwire Online Pharmacy 3.0 Cross Site Request Forgery / Cross Site Scripting
  12. 七夕节快到了,做个图钉画以及学习下Pillow吧
  13. servlet生成验证码代码
  14. pghoard 面向云存储的pg 备份&&恢复工具
  15. setTag,getTage复用
  16. JSP 语法
  17. BZOJ 1305 [CQOI2009]dance跳舞(二分+网络流)
  18. 路由器基本配置实验,静态路由和动态RIP路由
  19. Android NDK开发 Android Studio使用新的Gradle构建工具配置NDK环境(一)
  20. NET Core 1.1 静态文件、路由、自定义中间件、身份验证简介

热门文章

  1. CF 354 D 迷宫与门的旋转 BFS +状态压缩 一定要回头看看
  2. Ubuntu18.04安装rabbitvcs svn图形化客户端和简单实用
  3. (转译)2019年WEB漏洞扫描工具和软件前十名推荐
  4. MqttConnectReturnCode枚举值
  5. 在RHEL6_Oracle_Linux_6上生成正确的udev_rule_规则文件
  6. Fiddlercore拦截并修改HTTPS链接的网页,实现JS注入
  7. 【转】C/C++ 引用作为函数的返回值
  8. php array function
  9. gromacs2018使用踩坑记--insert-molecules
  10. golang tcp keepalive实践