学习笔记(21):第二章 程序设计与数据结构-Python的魔法功能,魅力之所在,让代码量更少 1...

立即学习:https://edu.csdn.net/course/play/25504/304703?utm_source=blogtoedu

d={'x':'A','y':"B",'z':'C'}
# 快速生成列表,需要定义Key和Value的变量
print([k + '=' + v for k,v in d.items()])

# 生成list[1,2,3,...10]

list(range(1,11)) # range(1,11)返回的是一个对象,把对象转为list需要把对象放到list中
print(list(range(1,11)))

# 生成[1*1,2*2,...10*10]列表

print([x*x for x in range(1,11)]) # 定义X变量为x*x,在定义一个for循环,x*x是列表汇总元素表达式的值,后面是列表

# 可用多个for循环将字符串拼接组成为新的字符串 'abc','123'
print([m + n for m in 'abc' for n in '123'])

print([m + n for m in 'a.b.c' for n in '123' if m != '. ']) # 过滤英文句号,还生成a1..c1 可以在表达式中做if判断

# 生成器

g = (x*x for x in range(10))
print(g) # yield方法并没有自动生成1-10的序列,而是得到一个生成器对象generator object

# 通过next方法得到generator生成器中的值,执行一次得到一次,generator保存的是算法,每次调用时会计算出下一个元素值,直到计算到最后一个元素
print(next(g))
print(next(g))
print(next(g))
print(next(g))
print(next(g))
print(next(g))
print(next(g))
print(next(g))
print(next(g))
print(next(g))
# print(next(g)) # 直到最后没有数据可以输出时,会抛出数据异常StopIteration停止迭代

for n in g:
    print(n) # 使用for in会直接输出所有数,for循环调用的也是next函数

# yield生成
#生成斐波那契额数列1,1,2,3,5,8,后一个数永远是之前一个的合
def fib(max):
    n,a,b = 0,1,1
    while n  
 

你可能感兴趣的:(研发管理)