>>> L = [1,2,3,4,5]
>>> L = [x+10 for x in L]
>>> L
[11, 12, 13, 14, 15]
list comprehension使代码变得简洁。下面这种常用的方法则显得过时:
>>> L = [1,2,3,4,5]
>>> for i in range(len(L)):
... L[i]+=10
...
>>> L
[11, 12, 13, 14, 15]
事实上在使用list comprehension时,代码内部相当于执行下面操作:
>>> L = [1,2,3,4,5]
>>> res = []
>>> for x in L:
... res.append(x+10)
...
>>> res
[11, 12, 13, 14, 15]
在可以的使用的地方尽可能使用list comprehension,是一种地道的Python写法。另外,相比for
循环,list comprehension在编译器内部的执行效率接近C,速度更快。