Python列表解析和生成器表达式
2017-01-02 11:40
465 查看
列表解析
在需要改变列表而不是需要新建列表时,可以使用列表解析。列表解析表达式:
[exp for iter_var in iterable]
第一种语法:首先迭代iterable里所有内容,每一次迭代,都把iterable里相应内容放到iter_var中,再在表达式中应用该iter_var的内容,最后用表达式的计算值生成一个列表。
[exp for iter_var in iterable if cond_exp]
第二种语法:加入了判断语句,只有满足条件的内容才把iterable里相应内容放到iter_var中,再在表达式中应用该iter_var的内容,最后用表达式的计算值生成一个列表。
例:
生成一个3行5列矩阵
L = [(x + 1, y + 1) for x in range(3) for y in range(5)]
L
[(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (2, 1), (2, 2), (2, 3), (2, 4), (2, 5), (3, 1), (3, 2), (3, 3), (3, 4), (3, 5)]
遴选大于5的数参与计算
N = [x + 10 for x in range(10) if x > 5]
N
[16, 17, 18, 19]
生成器表达式
生成器表达式是在python2.4中引入的,当序列过长, 而每次只需要获取一个元素时,应当考虑使用生成器表达式而不是列表解析,也就是说采用了一个更加友好的内存结构。生成器表达式的语法和列表解析一样,只不过生成器表达式是被()括起来的,而不是[],如下:
(exp for iter_var in iterable)
(exp for iter_var in iterable if cond_exp)
例:
L = (i + 1 for i in range(10) if i % 2)
L
在需要改变列表而不是需要新建列表时,可以使用列表解析。列表解析表达式:
[exp for iter_var in iterable]
第一种语法:首先迭代iterable里所有内容,每一次迭代,都把iterable里相应内容放到iter_var中,再在表达式中应用该iter_var的内容,最后用表达式的计算值生成一个列表。
[exp for iter_var in iterable if cond_exp]
第二种语法:加入了判断语句,只有满足条件的内容才把iterable里相应内容放到iter_var中,再在表达式中应用该iter_var的内容,最后用表达式的计算值生成一个列表。
例:
生成一个3行5列矩阵
L = [(x + 1, y + 1) for x in range(3) for y in range(5)]
L
[(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (2, 1), (2, 2), (2, 3), (2, 4), (2, 5), (3, 1), (3, 2), (3, 3), (3, 4), (3, 5)]
遴选大于5的数参与计算
N = [x + 10 for x in range(10) if x > 5]
N
[16, 17, 18, 19]
生成器表达式
生成器表达式是在python2.4中引入的,当序列过长, 而每次只需要获取一个元素时,应当考虑使用生成器表达式而不是列表解析,也就是说采用了一个更加友好的内存结构。生成器表达式的语法和列表解析一样,只不过生成器表达式是被()括起来的,而不是[],如下:
(exp for iter_var in iterable)
(exp for iter_var in iterable if cond_exp)
例:
L = (i + 1 for i in range(10) if i % 2)
L
相关文章推荐
- python生成器表达式和列表解析
- Python里有趣的列表解析和生成器表达式
- Python中的列表解析和生成器表达式
- python列表解析和生成器表达式
- 零基础学python-19.8 生成器表达式:当迭代器遇上列表解析
- Python基础:08列表解析与生成器表达式
- python 中的列表解析和生成器表达式
- Python 生成器函数,生成器表达式,迭代器,列表解析
- Python里有趣的列表解析和生成器表达式
- [转]Python里有趣的列表解析和生成器表达式
- 深入理解python的生成器表达式和列表解析
- python生成器表达式和列表解析
- Python 列表解析和生成器表达式
- python--生成器、三元表达式、列表解析、生成器表达式
- 零基础学python-19.8 生成器表达式:当迭代器遇上列表解析
- 零基础学python-19.8 生成器表达式:当迭代器遇上列表解析
- python--迭代器,生成器,三元表达式,列表解析,生成器表达式
- Python列表解析与生成器表达式
- 【python】对列表的过滤, 列表解析,生成器表达式
- python整理十——生成器表达式与列表解析