三元表达式和列表推导式
三元表达式
条件成立时的返回值+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可以返回多次值