python的生成器和迭代器
三、推倒式
从时间上比较:集合 字典 元祖 列表 (从小到大)
占用内存比较:字典 集合 列表 元祖 (从大到小)
字典是可进行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的生成器和迭代器的更多相关文章
- Python中生成器和迭代器的区别(代码在Python3.5下测试):
https://blog.csdn.net/u014745194/article/details/70176117 Python中生成器和迭代器的区别(代码在Python3.5下测试):Num01–& ...
- python中“生成器”、“迭代器”、“闭包”、“装饰器”的深入理解
python中"生成器"."迭代器"."闭包"."装饰器"的深入理解 一.生成器 1.生成器定义:在python中,一边 ...
- python语法生成器、迭代器、闭包、装饰器总结
1.生成器 生成器的创建方法: (1)通过列表生成式创建 可以通过将列表生成式的[]改成() eg: # 列表生成式 L = [ x*2 for x in range(5)] # L = [0, 2, ...
- python中“生成器”、“迭代器”、“闭包”、“装饰器”的深入理解
一.生成器 1.什么是生成器? 在python中,一边循环一边计算的机制,称为生成器:generator. 2.生成器有什么优点? 1.节约内存.python在使用生成器时对延迟操作提供了支持.所谓延 ...
- python中生成器与迭代器
可迭代对象:一个实现了iter方法的对象是可迭代的 迭代器:一个实现了iter方法和next方法的对象就是迭代器 生成器都是Iterator对象,但list.dict.str虽然是Iterable(可 ...
- Python之生成器、迭代器
生成器 生成器类似返回值为数组的一个函数,这个函数可以接受参数,可被调用,但只能产生一个值,所以大大节省内存. 生成器表达式的语法非常简单,只需要将列表推导式的中括号改成小括号就可以了 [x+x fo ...
- Python中生成器和迭代器的功能介绍
生成器和迭代器的功能介绍 1. 生成器(generator) 1. 赋值生成器 1. 创建 方法:x = (variable for variable in iterable) 例如:x = (i f ...
- 第五章:Python基础の生成器、迭代器、序列化和虚拟环境的应用
本课主题 生成器介紹和操作实战 迭代器介紹和操作实战 序例化和反序例化 Json 和 Pickle 操作实战 字符串格式化的应用 创建虚拟环境实战 本周作业 生成器介紹和操作实战 什么是生成器,生成器 ...
- python的生成器与迭代器和可迭代对象
来简单的说下python中的生成器和可迭代对象以及迭代器的问题.只是简单地记录一下并不涉及太深入的内容. 首先来说一下什么是生成器,先看下面的代码: #_*_ coding:utf-8 _*_ res ...
随机推荐
- Centos7网络配置( 网关、dns、ip地址配置)
0.前提:设置VMware的虚拟网络编辑器 子网和网关设置 虚拟网络编辑器 1.配置DNS(可忽略) $vim /etc/resolv.conf nameserver 192.168.0.1 2. ...
- Markdown中希腊字母与代码对应表
字母 代码 α\alphaα $\alpha$ β\betaβ $\beta$ γ\gammaγ $\gamma$ Γ\GammaΓ $\Gamma$ δ\deltaδ $\delta$ Δ\Delt ...
- 数据库SQL语言从入门到精通--Part 6--单表查询(快来PICK)
数据库从入门到精通合集(超详细,学习数据库必看) 查询操作是SQL语言中很重要的操作,我们今天就来详细的学习一下. 一.数据查询的语句格式 SELECT [ALL|DISTINCT] <目标列表 ...
- 图论--二分图最佳完美匹配(KM模板)
#include <iostream> #include <cstring> #include <cstdio> using namespace std; cons ...
- [UWP]推荐一款很Fluent Design的bilibili UWP客户端 : 哔哩
UWP已经有好几个Bilibili的客户端,最近有多了一个: 哔哩 - Microsoft Store 作者云之幻是一位很擅长设计的UWP开发者,我也从他那里学到了很多设计方面的技巧.它还是一位Bil ...
- Jenkins联动码云自动匹配分支进行构建流水线
一.安装Generic Webhook Trigger插件 二.创建项目 创建项目之前先准备自己的项目,如果没有可以我fork的一个项目.地址是:https://gitee.com/jokerbai/ ...
- High Card Low Card G(田忌赛马进阶!!)
传送门 \(首先一定要明确一个观点,不然会完全没有思路\) \(\bullet\)\(由于前半段大的更优,后半段小的更优.\) \(\bullet\)\(所以,\)Bessie\(一定会在前(n/2) ...
- 一条SQL的执行流程
- STM32 TIM1高级定时器配置快速入门
layout: post tags: [STM32] comments: true 文章目录 layout: post tags: [STM32] comments: true 重点内容 时基单元 计 ...
- vim(vi)的常用快捷键
Vim 简介 vim是什么?听说它是编辑器之神!神一样的存在,而我却经常用上下左右箭头来移动光标,实在是有点对不起它,所以想着稍微学学一点神的技能吧! 一. vim的三种模式 Nomal mode:默 ...