一些方法

#切片

L = ['A','B','C','D','E']

L[0:3]

#如果第一个索引是0,还可以省略

L[:3]

L[-2:]

L[-2:-1]

L[-10:]

L[:10:2]

L[::5]

L[:]

 #list、tuple、字符串都可以切片

#range()

#5开始,10以内的

range(5, 10)

#0开始,10以内的,步长3

range(0, 10, 3)

#-10开始,-100以内的,步长-30

range(-10, -100, -30) 

 

#迭代

#默认情况下,dict迭代的是key。

>>> K ={'a':1 , 'b':2 , 'c':3}
>>> for m in K:
    print m

    
a
c
b

 

#如果要迭代value,可以用for value in d.itervalues(),

>>> for m in K.itervalues():
    print m

    
1
3
2

 

#如果要同时迭代key和value,可以用for k, v in d.iteritems()。

>>> for m in K.iteritems():
    print m

    
('a', 1)
('c', 3)
('b', 2)
>>>

 

#简化代码,前面是输出形式,for后面是语句

>>> K ={'a':'d' , 'b':'e' , 'c':'f'}
>>> [m + '=' + v for m , v in K.iteritems()]
['a=d', 'c=f', 'b=e']

 

 

#字符串也是可迭代对象

>>> W = 'asdfgh'
>>> W[0:3]
'asd' 

 

#生成器(Generator)

generator和函数的执行流程不一样。函数是顺序执行,遇到return语句或者最后一行函数语句就返回。而变成generator的函数,在每次调用next()的时候执行,遇到yield语句返回,再次执行时从上次返回的yield语句处继续执行。

#斐波那契函数

>>> def fib(max):
    n,a,b = 0,0,1
    while n < max:
        yield b
        a,b = b, a+ b
        n = n+1

        
>>> fib(6)
<generator object fib at 0x03843918>
>>> g = fib(6)
>>> for n in g:
    print n

    
1
1
2
3
5
8

 

posted on 2016-10-24 13:25  chinxfin  阅读(96)  评论(0编辑  收藏  举报

导航