文章为学习廖雪峰老师的python教程笔记,为记录个人学习历程,不喜勿喷!
1、列表生成式:
>>> [x * x for x in range(1, 11)] [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
把要生成的元素x * x放到前面,后面跟for循环,就可以把list创建出来
二层循环:
[m + n for m in 'ABC' for n in 'XYZ'] ['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']
把字符串变小写:lower( )
>>> L = ['Hello', 'World', 'IBM', 'Apple'] >>> [s.lower() for s in L] ['hello', 'world', 'ibm', 'apple']
if....else
[元素 for 元素 in ... if条件判断]
在一个列表生成式中,for前面的if ... else是表达式,而for后面的if是过滤条件,不能带else
for 前if..else必须完整,for后可以只有if
2、生成器
创建generator:
a、 一个列表生成式的[]改成(),就创建了一个generator
eg:
g = (x * x for x in range(10))
打印generator的元素,用next()函数获得generator的下一个返回值,一个next()返回一个值
一般用for循环迭代它
⭐a ,b =b , a+b 相当于 t =(b,a+b) a=t[0] b=t[1] 注意与 a=b b=a+b 区分
关键字yield 普通函数是顺序执行,遇到return语句或者最后一行函数语句就返回。而变成generator的函数,在每次调用next()的时候执行,遇到yield语句返回,再次执行时从上次返回的yield语句处继续执行
毕业实习第四天,学得还是很少。



