一些方法
#切片 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