首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 知识点记录——高级特性

Python 知识点记录——高级特性

作者头像
MyJie
发布2019-11-20 14:52:55
3530
发布2019-11-20 14:52:55
举报
文章被收录于专栏:MyJie的个人日记MyJie的个人日记

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/yangj507/article/details/81162805

用于记录知识点,有错误欢迎指正

列表生成式:

用于创建list

[x * x for x in range(1, 11)]
[x * x for x in range(1, 11) if x % 2 == 0]
[{m: n} for m in 'ABC' for n in 'XYZ']

生成器:

返回的可迭代对象

1、列表生成式[]换成()

L = [x * x for x in range(1, 11)]

g = (x * x for x in range(1, 11)) # 生成器:可迭代对象,每次运行获取下一个返回值,for循环

2、生成器函数

def fib(max):
    n, a, b = 0, 0, 1
    while n < max:
        yield b
        a, b = b, a + b
        n = n + 1
    return 'done'

遇到yield语句返回值一个,再次执行时,从上次返回的yield语句处继续执行, for循环

for i in fib(6)

迭代器:

可以直接作用于for循环的对象统称为可迭代对象

可以被next()函数调用并不断返回下一个值的对象称为迭代器

生成器都是迭代器对象,但list、dict、str是可迭代对象,确不是迭代器。(为什么?迭代器对象是一个数据流,可以被next()函数不断的返回下一个数据,直到没有数据抛出错误。可以看作是有序的序列,但不知道序列长度。迭代器对象是惰性的,只有在需要返回下一个数据时它才会计算。而list永远不可能是无限的。不对请指出:惰性计算的序列都是迭代器

可迭代对象可以通过 iter() 函数获得一个迭代器对象

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-07-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档