三、推倒式
从时间上比较:集合 字典 元祖 列表 (从小到大)
占用内存比较:字典 集合 列表 元祖 (从大到小)

字典是可进行hash操作,操作的是字典的key ,而对list进行hash操作的时候操作的是
list的值

1、列表推导式
例子:list =[i for i in rang(1,200)]
解释:
列表推导式就是简写了的for循环,代码更加简洁,for循环每遍历一次就往list
里面添加一个数据

2、字典推导式

把下列字符串使用字典推导式生成一个字典
cook_str='BIDUPSID=D0727533D7147B7;PSTM=1530348042; ' \
'BAIDUID=B1005C9BC2EB28; sugstore=0;' \
'__cfduid=d0a13458f8ac2a;BD_UPN=12314353;' \
'ispeed_lsm=2;BDORZ=B490B5EBF6F3CD402'

data = { item.split("=")[0]:item.split("=")[1] for item in cook_str.split(";")}
print(data)

3、生成器表达式

# 生成器表达式
# 生成器
# 生成器存储并不是具体的值,而是一个算法,通过next() 来进行取值
# 一次只能取一个,如果取完了再去取,就会抛出异常
# 一次只能取一个,如果取完了再去取,就会抛出异常
tu = (i for i in range(1,20)) # 生成器对象
print(next(tu)) # 取值
# 通过yield 指定生成器 生成器取值使用next() 函数
# next() 取值yield 一次取一个
def gen_fun():
yield 1
print("hhhh")
yield 100
res = gen_fun()
print(next(res))

四、迭代器和生成器
1、生成器
生成器并不会一下子把所有的数据全部导出来,生成器中保存的只是一个生成数据的
相关算法,并不会吧数据都生成出来,只是在我们需要数据的时候,用生成器去生成一条数据
就可以了

生成器比迭代器多了几种方法 send() close() throw()

生成器 < 迭代器 < 可迭代对象
2、迭代协议

3、迭代器

迭代器:在可迭代对象的基础上实现了 __iter__方法 还实现了 __next__方法

可迭代对象:可以进行for循环的就是一个可迭代对象 内部只实现了 __iter__方法

生成器也是迭代器的一种,都支持迭代操作 for循环

例子:
list = [1,2,3,4]
list1 = iter(list) # 使用iter()来转化成一个迭代器
print(next(list1)) # 使用next()方法取值

python的生成器和迭代器的更多相关文章

  1. Python中生成器和迭代器的区别(代码在Python3.5下测试):

    https://blog.csdn.net/u014745194/article/details/70176117 Python中生成器和迭代器的区别(代码在Python3.5下测试):Num01–& ...

  2. python中“生成器”、“迭代器”、“闭包”、“装饰器”的深入理解

    python中"生成器"."迭代器"."闭包"."装饰器"的深入理解 一.生成器 1.生成器定义:在python中,一边 ...

  3. python语法生成器、迭代器、闭包、装饰器总结

    1.生成器 生成器的创建方法: (1)通过列表生成式创建 可以通过将列表生成式的[]改成() eg: # 列表生成式 L = [ x*2 for x in range(5)] # L = [0, 2, ...

  4. python中“生成器”、“迭代器”、“闭包”、“装饰器”的深入理解

    一.生成器 1.什么是生成器? 在python中,一边循环一边计算的机制,称为生成器:generator. 2.生成器有什么优点? 1.节约内存.python在使用生成器时对延迟操作提供了支持.所谓延 ...

  5. python中生成器与迭代器

    可迭代对象:一个实现了iter方法的对象是可迭代的 迭代器:一个实现了iter方法和next方法的对象就是迭代器 生成器都是Iterator对象,但list.dict.str虽然是Iterable(可 ...

  6. Python之生成器、迭代器

    生成器 生成器类似返回值为数组的一个函数,这个函数可以接受参数,可被调用,但只能产生一个值,所以大大节省内存. 生成器表达式的语法非常简单,只需要将列表推导式的中括号改成小括号就可以了 [x+x fo ...

  7. Python中生成器和迭代器的功能介绍

    生成器和迭代器的功能介绍 1. 生成器(generator) 1. 赋值生成器 1. 创建 方法:x = (variable for variable in iterable) 例如:x = (i f ...

  8. 第五章:Python基础の生成器、迭代器、序列化和虚拟环境的应用

    本课主题 生成器介紹和操作实战 迭代器介紹和操作实战 序例化和反序例化 Json 和 Pickle 操作实战 字符串格式化的应用 创建虚拟环境实战 本周作业 生成器介紹和操作实战 什么是生成器,生成器 ...

  9. python的生成器与迭代器和可迭代对象

    来简单的说下python中的生成器和可迭代对象以及迭代器的问题.只是简单地记录一下并不涉及太深入的内容. 首先来说一下什么是生成器,先看下面的代码: #_*_ coding:utf-8 _*_ res ...

随机推荐

  1. Android FrameWork学习(二)Android系统源码调试

    通过上一篇 Android FrameWork学习(一)Android 7.0系统源码下载\编译 我们了解了如何进行系统源码的下载和编译工作. 为了更进一步地学习跟研究 Android 系统源码,今天 ...

  2. 第 38 章 OCR - Optical Character Recognition

    38.1. Tesseract 查找Tesseract安装包 $ apt-cache search Tesseract ocrodjvu - tool to perform OCR on DjVu d ...

  3. python基础1习题练习

    python基础1习题练习: #encoding:utf-8 #1.实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败! name=input('na ...

  4. 僵尸进程(zombie process)

    首先了解一下linux中进程的5大状态: R Running or runnable (on run queue)S Interruptible sleep (waiting for an event ...

  5. Halloween Costumes 玄学题

    传送门 太难了,完全不懂 设\(dp[i][j]\)为第i天到第j天的最少代价 \(dp[i][j]=dp[i][j-1]+1\)(第j天多穿一件衣服) \(dp[i][j]=min(dp[i][j] ...

  6. 2019-2020Nowcoder Girl初赛 题解

    题目都不是很难,就是最后一题有点毒瘤 第一题:牛妹爱整除 这个你把一个进制数进行拆分,拆分成若干位,然后在取模,这样会发现如果是x进制的数,那么对x+1这个进制转化即满足条件. 举个例子:一个x进制数 ...

  7. 【Kafka】Consumer API

    Consumer API Kafka官网文档给了基本格式 http://kafka.apachecn.org/10/javadoc/index.html?org/apache/kafka/client ...

  8. u-boot 移植(二)创建新平台的板级支持

    u-boot 移植(二)创建新平台的板级支持 soc:s3c2440 board:jz2440 uboot:u-boot-2016.11 toolchain:gcc-linaro-7.4.1-2019 ...

  9. C语言进阶_变量属性

    人们总说时间会改变一些,但实际上这一切还得你自己来. 一.概念详解 变量:计算机语言中储存计算结果,其值可以被修改.通过变量名来访问计算机中一段连续的内存空间. 属性:区别于同类事物的特征. C语言中 ...

  10. JDBC03 Statement接口

    Statement接口 用于执行静态SQL语句并返回它所生成结果的对象 三种Statem类 Statement:由createStatement创建,用于发送简单的SQL语句(不带参数的),会有SQL ...