首页 > 代码库 > python学习日记

python学习日记

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 1000

for 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学习日记