"""

生成列表
	- 用range创建数字列表
	- 生成表达式
	- 生成器

Version: 0.1
Author: 骆昊
Date: 2018-03-06

"""


# 生成Fibonacci序列的生成器
def fib(n):
	a, b = 0, 1
	for _ in range(n):
		a, b = b, a + b
		yield a


def main():
	# 用range创建数值列表
	list1 = list(range(1, 11))
	print(list1)
	# 生成表达式
	list2 = [x * x for x in range(1, 11)]
	print(list2)
	list3 = [m + n for m in 'ABCDEFG' for n in '12345']
	print(list3)
	print(len(list3))
	# 生成器(节省空间但生成下一个元素时需要花费时间)
	gen = (m + n for m in 'ABCDEFG' for n in '12345')
	print(gen)
	for elem in gen:
		print(elem, end=' ')
	print()
	gen = fib(20)
	print(gen)
	for elem in gen:
		print(elem, end=' ')
	print()


if __name__ == '__main__':
	main()
