week03_python解析式
2018-08-20 21:19
423 查看
列表解析List Comprehension
语法:
[返回值 for 元素 in 可迭代对象 if 条件]
使用中括号[ ],内部是for循环,if条件语句可选
返回一个新列表
列表解析式是一种语法糖
编译器会优化,不会因为简写而影响效率
减少程序员工作量,减少出错
简化了代码,但可读性增强
举例说明:
生成一个列表,元素0-9,对每一个元素自增1后求平方返回新列表
获取10以内的偶数
有一个列表lst = [1, 4, 9, 16, 2, 5, 10, 15],生成一个新列表,要求新列表元素是相邻2项的和
语法:
[返回值 for 元素 in 可迭代对象 if 条件]
使用中括号[ ],内部是for循环,if条件语句可选
返回一个新列表
列表解析式是一种语法糖
编译器会优化,不会因为简写而影响效率
减少程序员工作量,减少出错
简化了代码,但可读性增强
举例说明:
生成一个列表,元素0-9,对每一个元素自增1后求平方返回新列表
target = [] for i in range(10): target.append((i+1)**2) print(target) 列表解析式,优化: l1 = range(10) l2 = [(i + 1)**2 for i in l1] print(l2) 再优化: a = [(i+1)**2 for i in range(10)] print(a)列表解析进阶:
获取10以内的偶数
even = [] for x in range(10): if x % 2 == 0: even.append(x) print(even)
使用列表解析式: even = [x for x in range(10) if x % 2 == 0] print(even)获取20以内的偶数,如果数是3的倍数也打印。想一下[i for i in range(20) if i % 2 == 0 elif i % 3 == 0]这样做行吗?
[i for i in range(20) if i % 2 == 0 elif i % 3 == 0] # 这样写会报错,SyntaxError: invalid syntax, 因为解析式根本不认识elif 其实可以这样写: [i for i in range(20) if i % 2 == 0 or i % 3 == 0] [i for i in range(20) if i % 2 == 0 or not i % 3] # not i % 3 这里其实相当于 not false 这样的语法列表解析式进阶:
[expr for i in iterable1 for j in iterable2] 等价于 ret = [] for i in iterable1: for j in iterable2: ret.append(expr)
print([(i, j) for i in range(7) if i > 4 for j in range(20, 25) if j > 23]) print([(i, j) for i in range(7) for j in range(20, 25) if i > 4 if j > 23]) print([(i, j) for i in range(7) for j in range(20, 25) if i > 4 and j > 23])练习题:
有一个列表lst = [1, 4, 9, 16, 2, 5, 10, 15],生成一个新列表,要求新列表元素是相邻2项的和
lst = [1, 4, 9, 16, 2, 5, 10, 15] # ret = [] # for x in range(len(lst) - 1): # ret.append(lst[x] + lst[x + 1]) # print(ret) print([lst[x] + lst[x + 1] for x in range(len(lst) - 1)])九九乘法表:
[print('{}*{}={:<3}{}'.format(j, i, i*j, '\n' if i == j else ''), end="") for i in range(1, 10) for j in range(1, i+1)]
相关文章推荐
- week03_python标准库datetime
- week03_python生成器
- python学习习题总结(8)——简单选择排序,列表解析式使用(格式化输出杨辉三角,九九乘法表)
- python生成器,两种表现形式,列表解析式,母传下蛋传说,人口统计文件读取求和法
- Python_week03
- Python之菜鸟入门week03
- Python->列表解析式
- python回顾,yield特点,三元运算符,列表解析式,迭代器生成式,只可遍历一次的试码
- Python列表解析式
- 如何用列表解析式生成 2个小数位 的 python 列表
- Python 解析式
- week03_python内置数据结构__封装、解构
- python学习--列表解析式/综合列表/
- week03_python内置数据结构_set及操作
- python学习7-解析式与迭代器
- 初学python之解析式
- python的map、filter、reduce函数以及列表解析式
- Python - 列表解析式/生成器表达式
- 轻松学会Python列表解析式
- Python基础入门-列表解析式