python学习日记,,1)range()控


1)range()控制for循环,len()用于返回对象的个数

a=‘asfefqfq‘for b in range(0,len(a),2):    print a[b]

如何去让其不会行输出(python2中直接在a[b]后添加逗号)

2)enumerate()可以从循环中得到下标和元素

a=‘asfefqfq‘for (x,y) in enumerate(a):    print (x,y),

3)zip()可以从等长的序列中分别提取一个元素,然后组成一个新的序列

a=‘abc‘b={1,2,3}for c in zip(a,b):    print c,

用上*可以将c进行解开,差不多就是一种还原操作(a1,a2)=zip(*c)

4)循环对象  

循环是一个带有next()方法的对象,例如当一个for循环时,都会去调用next()方法,直到StopIteration出现,for循环接受到,for循环结束,停止调用

for line in open("log.txt","r"):    print line

5)迭代器

在循环对象和for循环调用之间还有一个对象,需要用迭代器(iterator)进行

6)生成器

生成器(generator)是一个用户自定义的循环对象,在编写和定义函数时,将return换成yield,每次去掉用这个方法或循环时,会从上次暂停的地方从新开始

def  kkk():    a=1    yield a    a=2    b=3    yield a*b    yield 1000for x in kkk():    print x

进一步理解生成器表达式:

G=(x for x in range (4))
7)表推论

表推论是一种快速生成表的一种方式(list comprehension)

Q=[]for x in range(5):    Q.append(x**2)print Q
x1=[1,3,5]y1=[9,12,13]L=[x**2 for (x,y) in zip(x1,y1) if y>10]print L

 机制有待了解?_?

python学习日记

评论关闭