python 三元运算、列表推倒式、字典推倒式、生成器生成式
1、三元运算
name=input('姓名>>: ') res='SB' if name == 'alex' else 'NB' print(res) 2、列表推倒式
#1、示例 egg_list=[] for i in range(10):egg_list.append('鸡蛋%s' %i)egg_list=['鸡蛋%s' %i for i in range(10)] zip的用法
l = [1,2,3]b = (4,5,6)c = {7,8,9}a = zip(l,b,c)print(list(a))
结果:
[(1, 4, 8), (2, 5, 9), (3, 6, 7)]
3、字典推倒式
k = ['egon',18,'male'] v = ['name','age','sex'] d = {v:k for v,k in zip(k,v)} print(d) 4、生成器生成式
通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。
所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边循环一边计算的机制,称为生成器(Generator)。
要创建一个generator,有很多种方法。第一种方法很简单,只要把一个列表生成式的[]
改成()
,就创建了一个generator:
#1、把列表推导式的[]换成()就是生成器表达式#2、示例:生一筐鸡蛋变成给你一只老母鸡,用的时候就下蛋,这也是生成器的特性 >>> chicken=('鸡蛋%s' %i for i in range(5)) >>> chicken <generator object <genexpr> at 0x10143f200> >>> next(chicken) '鸡蛋0' >>> list(chicken) #因chicken可迭代,因而可以转成列表 ['鸡蛋1', '鸡蛋2', '鸡蛋3', '鸡蛋4',]
案例:我要统计文件每行个数最大的
with open('a.txt',encoding='utf-8') as f:nums=(len(line) for line in f) #max自动有一个生成器next的方法print(max(nums))
#下面会报错
print(max(nums))
print(max(nums))
转载于:https://www.cnblogs.com/wuheng-123/p/9178826.html
python 三元运算、列表推倒式、字典推倒式、生成器生成式相关推荐
- python 常用字符串 列表元祖字典都 自带的函数方法
上节内容回顾和补充编程语言高级低级Python种类JavaPythoncPython *****pypy字节码 和 机器码Python程序:1. 终端:C:\python35\python.exe D ...
- Python三元运算
三元运算又称三目运算,是对简单的条件语句的简写. 举个例子:简单条件语句 ----> 三元运算 if 条件成立:val = 1 else:val = 2 val = 1 if 条件成立 else ...
- python字符串删除,列表删除以及字典删除的总结
一:字符串删除 1,字符串本身是不可变的,一个字符串定义以后,对他本身是不能做任何操作的,所以的增删改都是对原字符串拷贝的副本的操作,原来的字符串还是原来的字符串,它本身并没 有变 2,字符串本身是 ...
- Python 三元运算
三元运算又称为三目运算,主要是对简单的条件语句的简写 语法: result = 值1 if 条件 else 值2如果条件为真:result = 值1 如果条件为假:result = 值2 常规条件句: ...
- Python初始化空列表,空字典,空元组,空集合
""" 一. Python 推导式的空初始化 1.Python的推导式没做类型的限制,只要是python合法的事物都能放进去 2.list 列表 元素可以重复,且有先后. ...
- python入门之 列表 元组 集合 字典 最全教程
一.列表 列表(list)是Python中的一种数据结构,它可以存储不同类型的数据.不同元素以逗号分隔. //下标索引访问 A = ['xiaoWang', 'xiaoZhang', 'xiaoHua ...
- day13 生成器 三元运算 列表解析
本质上来说生成器迭代器都是一种数据类型,如果你直接打印生成器是无法得出值的,会得到一串内存地址,即一个对象想要得到生成器的值必须要用for或者next,list等来获取 生成器生成器就是一个可迭代对象 ...
- 4.04Day14递推、三元表达式、列表/字典推导式、匿名函数
复习:1.迭代器:不需要索引的取值方式2.生成器:通过特殊的语法自定义的迭代器3.枚举对象:为可迭代对象创建索引(按照迭代的顺序创建索引) 迭代器对象:装有多个值的容器 1. 可用通过.__next_ ...
- Python各种推导式(列表推导式,字典推导式,集合推导式,嵌套列表推导式)
一.列表推导式 Python官网列表推导式部分 列表推导式提供了一种创建list的简便方法.应用程序创建列表时,列表中的元素来源于其他序列.可迭代对象或创建的一个满足一定条件的序列. 基本格式: [ ...
最新文章
- mysql中engine=innodb和engine=myisam的区别 (转)
- r语言glmnet包系数显示不全_第一章: R语言介绍
- hadoop整合纪要
- 彻底理解Python中的yield
- IOS添加pch预编译文件
- 如何在gradle上仅运行一个测试类
- python_selenium简单的滑动验证码
- 微信支付相关开发问题解决方案收集汇总
- Atiitt 日志技术的重大问题解决法 目录 1.1. 只想看某些日志,使用tag过滤法	1 1.2. 能方便清晰的列出某一业务(如支付)的完整的处理流程 业务tag	1 1.3. - NDC(N
- 挖掘目录穿越漏洞实战经验
- AR5B22网卡折腾记录
- 激情巴布部落畅快一日游
- linux usb摄像头驱动程序,Linux系统下USB摄像头驱动开发
- Linux下开源邮件系统Postfix+Extmail+Extman环境部署记录
- VM虚拟机安装使用OBS直播录屏软件图文教程及注意事项
- 互联网行业职位介绍——PM,RD,FE,UE,UI,QA,OP,DBA,BRD,MRD, PRD,FSD等
- 力扣热门题目简单部分合集(共23道)
- 构造器(有参、无参)
- 计算机巨人的采访对话英文怎么说,【英文采访稿对话式范文】_英文采访稿对话式范文...
- Python的提交表单功能
热门文章
- struts1 mysql config_详解Struts1中的struts-config.xml配置文件【一】
- AcWing 868. 筛质数(欧拉筛模板)
- java编写万年历_怎么用JAVA编写万年历!
- java 绘制sin函数图像_第11讲 数学软件Mathematica内置函数的使用规则
- Spark Streaming 反压机制
- No space left on device 磁盘空间提示不足解决办法
- Windows命令查看文件MD5
- 《C语言及程序设计》实践参考——太乐了
- Scala确实是门好语言
- int main():声明指定了两个以上的数据类型