# 生成器 generator 用yield来返回数据
def reverse(data):for i in range(len(data) - 1, -1, -1): # range(start, end, step) 不包括endyield data[i]def test_generator():for char in reverse('abc'):print(char)# test_generator()
'''
c
b
a
'''
'''
生成器表达式:与列表推导表达式有异曲同工之妙,只是在内置函数里面推导的。
'''
def get_sum(var):if var < 0:var = 0s = sum(x * x for x in range(var + 1)) # 1-var的平方和print(s)return s # get_sum(3) 14def other_generator():x1 = [1, 2, 3]y1 = [4, 5, 6]z = zip(x1, y1) # list(z) [(1, 4), (2, 5), (3, 6)]print(sum(i * j for i, j in z))print(list(z), '\n')from math import pi, sin sin_table = {x: sin(x*pi/180) for x in range(0, 91)}print(sin_table)# other_generator()# set max list
# 在元组里面找到不重合的值
s = set(x for x in ('abacdfd'))
print(s)# 找到里面最大的值
max_val = max((x, y) for x in [9, 53, 3] for y in range(7))
print(max_val)data = 'abc'
L = list(data[i] for i in range(len(data) - 1, -1, -1))
print(L)'''
{'d', 'f', 'a', 'c', 'b'}
(53, 6)
['c', 'b', 'a']
'''
请看列表,字典推导式,数据结构。