码迷,mamicode.com
首页 > 编程语言 > 详细

python学习日记

时间:2017-05-17 11:52:11      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:控制   code   定义   对象   学习   highlight   迭代   bsp   之间   

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

标签:控制   code   定义   对象   学习   highlight   迭代   bsp   之间   

原文地址:http://www.cnblogs.com/levi-ji/p/6866388.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!