三元表达式、列表推导式、字典生成式、生成器

三元表达式和列表推导式

三元表达式

条件成立时的返回值+if条件+else条件不成立时的返回值

x = 10
y = 20
print(x if x > y else y)
20

列表推导式

print([i for i in range(10)])
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print([i*3 for i in range(5)])
[0, 3, 6, 9, 12]

字典生成式

print({i:i*3 for i in range(10)})
{0: 0, 1: 2, 2: 4, 3: 6, 4: 8, 5: 10, 6: 12, 7: 14, 8: 16, 9: 18}

zip()方法

dic = zip('abcd',[1,2,3,4])
dic_dict = {k:v for k,v in dic}
print(dic_dict)
{'a': 1, 'b': 2, 'c': 3, 'd': 4}

生成器

yield关键字

yield关键字也是接受函数返回值,但是不会终止函数

def func():
    print(1)
    yield
    print(2)
    yield


g = func()
next(g)
next(g)
1
2

func()函数就变成了一个迭代器对象,可以通过next来进行取值

yield和return的区别

相同点:两者都是在函数内部使用,都可以返回值,并且返回值没有类型和个数的限制

不同点:return只能返回一次之;yield可以返回多次值

猜你喜欢

转载自www.cnblogs.com/Hades123/p/11019526.html