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)]
解决。