python基础之Day14
一、生成器
1、什么是生成器
在函数内但凡出现yield关键字,再调用函数就不会执行函数体代码,会返回一个值,该值称之为生成器,生成器本质就是迭代器
2、为什么要有生成器
生成器是一种自定义迭代器的方式
注:
生成器在刚刚生成时不执行里面任何代码
总结yield的功能
1、提供一种自定义迭代器的方式
2、yield可以暂停住函数,返回值
yield VS return
相同点:都是用在函数内,都可以返回值,没有类型限制,没有个数限制
不同点:return只能返回一次值,yield可以返回多次值
用yield写一个简单的range函数
1
2
3
4
5
|
def my_range(start,stop,step = 1 ) while stat<stop: yield start start + = step g = my_range( 0 , 4 ) |
二、杂项
1、三元表达式
条件成立时返回值 if条件 else 条件不成立时返回值
例如:
def max2(x,y)
if x>y:
return x
else:
return y
x=10
y=20
max2(x,y)
上述功能可以直接使用三元表达式实现:
res=x if x>y else y
print(res)
2、列表生成式
l=[item**2 for item in range(1,11)]
print(1)
names=['egon','alex_xx','wupeiqi','yuanhao']
nums=[len(name) for name in names if not name.endswith('xx')]
print(nums)
3、字典生成式
keys=['name','age','sex']
values=['egon',18,'male']
d={k:v for k,v in zip(keys,values)}
print(d)
3、生成器表达式
g=(i for i in range(10))
print(g)
python基础之Day14的更多相关文章
- python基础一 day14 生成器函数进阶
def generator(): print(123) content = yield 1 print('=======',content) print(456) arg = yield 2 '''' ...
- python基础学习Day14 内置函数 匿名函数
一.内置函数里几个高频重要函数 (1)min\max函数的用法 以min函数的为例: min:返回可迭代对象的最小值(可加key,key为函数名,通过函数的规则,返回最小值). l1 =[(,),(, ...
- python基础一 day14 生成器函数进阶(1)
- python基础一 day14 复习
迭代器和生成器迭代器:双下方法 : 很少直接调用的方法.一般情况下,是通过其他语法触发的可迭代的 —— 可迭代协议 含有__iter__的方法('__iter__' in dir(数据))可迭代的一定 ...
- Python之路,Day14 - It's time for Django
Python之路,Day14 - It's time for Django 本节内容 Django流程介绍 Django url Django view Django models Django ...
- python之最强王者(2)——python基础语法
背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...
- Python开发【第二篇】:Python基础知识
Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...
- Python小白的发展之路之Python基础(一)
Python基础部分1: 1.Python简介 2.Python 2 or 3,两者的主要区别 3.Python解释器 4.安装Python 5.第一个Python程序 Hello World 6.P ...
- Python之路3【第一篇】Python基础
本节内容 Python简介 Python安装 第一个Python程序 编程语言的分类 Python简介 1.Python的由来 python的创始人为吉多·范罗苏姆(Guido van Rossum) ...
随机推荐
- js将一维数组转化为二维数组
遇到的问题: 后端返回的是一组一维数组,但是需要展示的格式是二维数组,常见的场景举例:后台返回10个长度的数组,需要分成3个一组展示在banner上. 例:[1,2,3,4,5,6,7,8,9,10] ...
- 使用K-means进行聚类,用calinski_harabaz_score评价聚类效果
代码如下: """ 下面的方法是用kmeans方法进行聚类,用calinski_harabaz_score方法评价聚类效果的好坏 大概是类间距除以类内距,因此这个值越大越 ...
- Android 开发 View的API 转载
转载地址:https://blog.csdn.net/lemonrabbit1987/article/details/47704679 View类代表用户界面组件的基本构建块.一个View占据屏幕上的 ...
- SAP S/4 HANA 1709 Fully Activated Appliance
SAP S4HANA 1709 Fully Activated Appliance:简单来说比IDES版本功能更加强大,内置三个集团,分别用于测试不同业务.内置官方的BP内容 安装需要500G SSD ...
- HttpLogBrowser-GUI日志分析工具
登陆https://www.iis.net/downloads搜索HttpLogBrowser获得最新版本
- Anatomy of a Database System学习笔记 - 事务:并发控制与恢复
这一章看起来是讲存储引擎的.作者抱怨数据库被黑为“monolithic”.不可拆分为可复用的组件:但是实际上除了事务存储引擎管理模块,其他模块入解析器.重写引擎.优化器.执行器.访问方式都是代码相对独 ...
- Python module ---- abc
python中并没有提供抽象类与抽象方法,但是提供了内置模块abc(abstract base class)来模拟实现抽象类. ABC,Abstract Base Class(抽象基类),主要定义了 ...
- JavaScript中面相对象OOP
方法 方法的原型链 <html> <head> <title></title> </head> <script type=" ...
- Win7 Win8 Win10取不到机器码的处理办法
1.更改UAC也就是用户账户的控制权限 2.以管理员身份运行软件
- 【读书笔记】segment routing mpls数据平面-2