列表生成式,python高级特性之一
在代码编辑中少不了,需要用到列表的地方,要素量较少的列表可以手动写出如:list = [1,2,3],那么需要的列表要素量较大,手敲肯定是不现实的,那么就需要用到列表生成式了。下面我就来写出列表生成式的用法:
1.list = [x for x in range(1000)] ,这是最简单的列表生成式用法,可以用来生成0-999的列表;x 为循环出来的值,也就是列表的要素,该生成式会将循环迭代出来的值添加进名为list列表
2.可以对循环出来的要素值进行运算在添加进列表:list = [x**2 for x in range(1000)],要素的表达式为“x**2”也就是循环出来的值在去幂后,再将值添加进list
3.可以在列表生成式中嵌套循环,list = [x*y for x in range(1,2) for y in range(10)]
打印结果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
4.可以再列表生成式后添加判断条件,list = [x for x in range(10) if x % 2 != 0]
打印结果:[1, 3, 5, 7, 9]
扩展可以用列表生成式的基础生成其它类型的数据
1.dict = {x:y for x in ['name','age'] for y in ['liu','22']}
打印结果:{'name': '22', 'age': '22'}
2.值得注意的是,将生成式放进小括号时生成的是一个生成器
from collections.abc import Iterator
tuple = (x for x in range(10))
print(isinstance(tuple,Iterator))
print(next(tuple))
打印结果:
True
0