zhao896

 

python技巧-通过列表推导构建列表

thenewlist=[x+2 for x in theoldlist]

thenewlist=[x for x in thelodlist if x >5]

thenewlist=[x+2 for x in theoldlist if x>5]

L[:]=[min(x,100) for x in L]

 对每个元素调用一个函数,使用L1=map(function,L)

total=sum([x+23 for x in theoldlist if x>32])

total=sum(x+23 for x in theoldlist if x>32)也可以。

若列表中某元素存在则返回之:

def list_get(L, i ,v=none):

     if -len(L) <=i<len(L): return L[i]

     else return v

循环访问序列中的元素和索引:

直接循环for x in sequence:

                process(x)

比下面的效率更高

for index in range(len(sequence):

     process(sequence[index])

效率没有上面的高 

 ,,,,,,

必须修改索引处的值可以用内建的enumerate(sequence)

for index, item in enumerate(sequence):

     if item>30:

         sequence[index]=.....

         process(item)

 无须共享引用条件下创建列表的列表

multi=[[0]*5 ]*3

multi[0][0]='oops'

 会出问题

使用multi=[[0 for x in range(5) ] for row in range(3)]

解决。

 

 

 

posted on 2011-09-21 12:58  zhao896  阅读(211)  评论(0编辑  收藏  举报

导航