Python基础-----三元表达式、列表解析、生成器表达式
三元表达式: 变量 = 值1 if 条件为真 else 值2 类似于: res = '对了' if 1 > 2 else '错了' print(res) >>> '错了' 普通表示: if 1 > 2: print('对了') else: print('错了') 列表解析: 假如要生成0-9共10个数字,存放在列表中 类似于: l = [i for i in range(10)] print(l) >>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 普通表示: l = [] for i in range(10): l.append(i) print(l) 列表解析与三元表达式共同使用: 假如要生成0-9共10个数字中大于5的数字,存放在列表中 l = [i for i in range(10) if i>5] >>> [6, 7, 8, 9] 生成器: 为一种数据类型,该数据类型自动实现了迭代器协议(其他数据类型如字典、列表等,需要先执行__iter__()方法)所以生成器就是可迭代对象 生成器分类及在python中的表现形式: 1、生成器函数:同常规函数一样定义,但是使用yield语句(可以执行多次)而不是return语句返回结果。yield语句一次返回一个结果,在每个结果中间,挂起函数的状态,以便下次从它离开的地方继续执行; def test(): for i in range(1,4): yield i a = test() print(a.__next__()) >>> 1 print(a.__next__()) >>> 2 print(a.__next__()) >>> 3 2、生成器表达式:类似于列表推导,但是生成器返回按需产生结果的一个对象,而不是一次构建一个结果列表 类似于猎豹列表解析,只是将[]改为() l = (i for i in range(1,4)) print(l.__next__()) >>> 1 print(l.__next__()) >>> 2 print(l.__next__()) >>> 3 所以生成器表达式配合for以及内置函数方便的使用一些功能 如求0~100的和 sum(i for i in range(101)) 生成器的优点: 1、生成器的好处是延迟计算(按需产生结果),一次返回一个结果。也就是说,它不会一次生成所有的结果,这对于大数据量处理将会非常有用; 2、生成器还能提高代码的可读性。 注意事项:生成器只能遍历一次(遍历完成,函数失效),超出次数会抛出StopIteration异常 例子:有一个 人口普查.txt{'city':'A','people':1000}{'city':'B','people':10100}{'city':'C','people':12000}{'city':'D','people':10300}{'city':'E','people':102300}想要获取这五个城市的人口总和 def get_people(filename): with open(filename,'r',encoding='utf-8-sig') as f: for i in f: yield eval(i)['people'] data_people = get_people('人口普查.txt')all_people = sum(data_people)print(all_people) 求一段文字中,每个单词出现的位置普通方法def index_words(text): result = [] if text: result.append(0) for index,letter in enumerate(text,1): if letter == ' ': result.append(index) return resultprint(index_words('helllo alex da sb')) 使用生成器def index_words(text): try: if text: yield 0 for index,letter in enumerate(text,1): if letter == ' ': yield index except StopIteration: #捕获生成器没值异常 print('没了~~~')g = index_words('helllo alex da sb')print(g.__next__())print(g.__next__())print(g.__next__())print(g.__next__())
转载于:https://www.cnblogs.com/Meanwey/p/9741268.html
Python基础-----三元表达式、列表解析、生成器表达式相关推荐
- 三元表达式列表解析生成器表达式
三元表达式 列表解析 生成器表达式 三元表达式 在作简单的判断时,三元表达式能简化代码: def max(x, y):if x > y:return xelse:return y # 这个函数可 ...
- 4 三元表达式 列表解析 生成器表达式
三元表达式 #!/usr/bin/env python3 # _*_ coding:utf-8 _*_ # @File : 三元表达式 # @Version : 1.0'''三元表达式能实现简单的 i ...
- Python基础教程:列表解析
Python中的解析 Python支持各种解析(comprehension)操作,比如列表解析.集合解析.元组解析.字典解析.它们根据某些元素来创建(推导)出一个新的列表.集合.元组.字典等.所以有的 ...
- Python基础语法【列表】
Python基础语法[列表] 一.认识列表 1.什么是列表(list) 1)列表是python提供的容器型数据类型:将[]作为容器的标志,里面多个元素用逗号隔开:[数据1,数据2,-] [数据1,数据 ...
- 萌新向Python数据分析及数据挖掘 第一章 Python基础 第三节 列表简介 第四节 操作列表...
第一章 Python基础 第三节 列表简介 列表是是处理一组有序项目的数据结构,即可以在一个列表中存储一个序列的项目.列表中的元素包括在方括号([])中,每个元素之间用逗号分割.列表是可变的数据类型, ...
- Python基础数据之列表知识(二)
Python基础数据之列表知识(二) 一.列表的特点 二.列表的排序 三.列表的嵌套 1.嵌套的基本使用 2.嵌套的示例 四.列表的循环删除 五.列表相关知识链接 一.列表的特点 1.有序 2.独立 ...
- Python基础数据之列表
Python基础数据之列表 一.列表介绍 1.简介 2.列表的特性 二.列表初识 三.for循环中使用 四.列表长度表示 五.向列表中添加内容 1.向列表中追加内容 2.向列表中插入内容 3.批量添加 ...
- Python基础学习之列表操作
Python基础学习之列表操作 文章目录 Python基础学习之列表操作 1. 列表的增,删,改,查 1.1 列表的增加,常用的方法有:append, extent, incert 1.2 列表的删除 ...
- python基础数据类型之列表,元组(基础二)
第四章 python基础数据类型之列表,元组(基础二) python常用数据类型之组合数据类型:列表,元组. 4.1 列表 list 列表介绍 列表是python的基础数据类型之⼀ ,其他编程语⾔言也 ...
最新文章
- android 上传pdf文件,Android 加载PDF文件
- 相关的验证的正则表达式
- 实验七——函数定义及调用总结
- centos安装Hue 3.7.0
- 实验2 SQL Server 表操作
- 导致出现404的原因以及解决方案
- Linux系统通过FTP进行文档基本操作【华为云分享】
- 分布式系统:数据库、操作系统、集群、协调、接口、多处理器、共享、I/O
- 一篇总结得超全的前端进阶文章!入门、技巧、方法、书籍、网站...一步到位!
- UVA722 LA5359 Lakes【DFS】
- 3-汇编语言中与内存访问相关的寄存器/操作(DS+数据段+SS/SP+栈相关操作)
- 空心心形图案的c语言程序,C语言写的各种心形图案_6583
- TIA博途_如何更新程序中的指令版本和CPU固件版本?
- 别人都不知道的“好用”网站,让你的效率飞快
- 微信小程序开发者工具 无法加载以下来源的扩展程序 问题解决
- 关于DM MPP的搭建
- linux如何把系统盘转换成gpt,如何更改/转换Ubuntu MBR驱动器到GPT,并从EFI启动Ubuntu?...
- 对“回调函数”的理解
- Windows微信刷朋友圈
- 用 Async 函数简化异步代码
热门文章
- mysql数据库的密码破解/用户授权/备份/图形化管理工具phpmyadmin
- Vue.js 框架的发展历程
- 数字逻辑习题(八) 根据JK触发器和CP波形,画出Q端的波形
- 频域稳定判据-也不过如此
- 【集合论】序关系 ( 链 | 反链 | 链与反链示例 | 链与反链定理 | 链与反链推论 | 良序关系 )
- C++ 写一个程序:按空格键暂停程序,再按空格键继续程序
- 记普林斯顿大学教授李凯:从中国工人到美国院士
- HBase region 定位原理
- 公务员考试取消35岁限制,就能消除职场年龄歧视?
- C++ 【学习笔记】 - 基础(class、inline、explict、new、delete、static、this、mutable、friend、operator、virtual)