三元表达式&列表解析&生成器表达式
来源:互联网 发布:百度 mac 五笔 词库 编辑:程序博客网 时间:2024/05/21 12:06
- 三元表达式
- 列表解析
- 生成器表达式
三元表达式
在作简单的判断时,三元表达式能简化代码:
def max(x, y): if x > y: return x else: return y# 这个函数可以简化为如下形式:def max_new(x,y): return x if x > y else y
格式:x
if 条件
else y
如果条件成立,返回x, 否则返回y
列表解析
列表解析也是三元表达式,方便我们从一个序列生成另一个序列。
基本格式如下:
举几个栗子:
s = 'hello'l =[x.upper() for x in s]print(l) # 打印结果如下:['H', 'E', 'L', 'L', 'O']list = [1,3,59,45,60]l_new = [x for x in list if x > 50]print(l_new) # 打印结果如下:[59, 60]
在具体应用时,应该先写出上图中的基本结构,有时输出表达式可以写的很复杂,输入序列也可以嵌套,if判断中也可以嵌套 for i in
比如下面这个栗子:
# 文件a.txt内容# apple 10 3# tesla 100000 1# mac 3000 2# lenovo 30000 3# chicken 10 3# 要求使用列表解析,从文件a.txt中取出每一行,做成下述格式# [{‘name’:'apple','price':10,'count':3},{...},{...},...]file = r'D:\Pythonworks\homework\170616函数列表解析\a.txt'with open(file,encoding='utf-8')as f: print([{'name': line.strip().split(' ')[0],\ 'price':line.strip().split(' ')[1], \ 'count': line.strip().split(' ')[2]}for line in f ])# 分析题目可以发现,输出表达式是字典元素,输入序列是文件的一行,那先把基本的形式写出来:# [{'name':X, 'price': X, 'count': X} for line in f]# 然后再从line中分解出X# 方法二:with open(file,encoding='utf-8')as f: print([{'name':i[0],'price':i[1],'count':i[2]}for i in [line.strip().split(' ') for line in f]])# 1 strip()是去掉字符串前后的空格和换行符。字符串内的空格也是字符!# 2 with open() as f: 语句的自动关闭文件功能,是指出了with的缩进,就关闭。# 3 上面这个嵌套了两个列表解析。最后一个列表,是最终列表的输入序列。
生成器表达式
同列表解析一样,只需要把 []
换成 ()
就可以得到一个生成器。
阅读全文
0 0
- 三元表达式&列表解析&生成器表达式
- python--迭代器,生成器,三元表达式,列表解析,生成器表达式
- DAY 21生成器、三元表达式、列表生成式、生成器表达式
- 三元表达式和列表解析
- 列表解析与生成器表达式
- Python 列表解析和生成器表达式
- Python 列表解析和生成器表达式
- python 中的列表解析和生成器表达式
- 列表解析式与生成器表达式
- Python列表解析和生成器表达式
- 生成器表达式和列表解析的区别
- 列表解析式和生成器表达式
- 面向过程编程、三元表达式、列表推导式与生成器表达式
- Python 生成器函数,生成器表达式,迭代器,列表解析
- 【python】对列表的过滤, 列表解析,生成器表达式
- python整理十——生成器表达式与列表解析
- [转]Python里有趣的列表解析和生成器表达式
- Python基础:08列表解析与生成器表达式
- AD元器件向导的封装类型
- PyCharm使用技巧:Show in Explorer(打开文件所在的文件夹)
- Linux 内存和CPU占用高的程序
- Error:java: Compilation failed: internal java compiler error
- s3c2440裸机中 option.inc C语言解释
- 三元表达式&列表解析&生成器表达式
- 简单的下拉导航条代码
- 【Python学习笔记】利用Python爬取百度搜索结果
- Windows Server 2012 +WDK7600.16385.1+VS2008驱动开发环境搭建
- linux服务器被当肉鸡过程
- hdu Problem-1896(优先队列+模拟)
- django 分页
- Java和前端的感受
- spring注解方式 idea报could not autowire,eclipse却没有问题