Python列表推导式和生成式

  1. 推导式
    作用:按一定的逻辑顺序,生成列表,简单且快捷

语法一:[ 表达式 for 变量 in 旧列表 ]
例如生成一个[1,2,3,4,5,6,7]列表

[x for x in range(1,8)]

或者生成一个[1,4,9,16,25,36,49,64,81]的列表

[x*x for x in range(1,10)]

语法二:[ 表达式 for 变量 in 旧列表 if 条件 ]
筛选出[1,2,3,4,5,6,7,8,9]列表中所有偶数

a = [1,2,3,4,5,6,7,8,9]
[x for x in a if x%2==0]

  1. 生成器(generator)
    作用:和推导式一样
    优点:节约空间,在需要时生成,不会一次性生成所有数据
    语法:和推导式一样 只需要将 [ ] 改为 ( )

(x for x in range(1,10))

next( ) 可以顺序获取生成器中的值
语法:next(生成器)

a = (x for x in range(1,10))
b = next(a)

b为:1
如果想获取a中的第4个值,只需要添加一个循环

a = (x for x in range(1,10))
k = 4
while k>0:
	k -= 1
	b = next(a)

此时a中的值为:4


__ next __( )函数 也可以顺序获取生成器中的值
语法:生成器.__next __( )
用法和next( )一样


yield关键字
只要在函数中添加了yield关键字,就变成了一个(生成器函数)

def fn():
	n = 0
	while True:
		n += 1
		yield n
a = fn()
b = next(a)

取值和生成器一样
其中yield相当于 return+暂停

你可能感兴趣的:(python学习笔记,python)