列表推导式(List comprehensions)如何使用?

语法如[expr for iter_var in iterable],从一个可迭代对象里面迭代,把每一个元素取出来赋值给 iter_var变量,然后expr表达式可以使用iter_var变量,举例如下:

>>> a = [1, 2, 3, 4, 5]
>>> [i for i in a ]
[1, 2, 3, 4, 5]

假设限制仅有一行代码实现对列表a中的偶数元素进行加10后求和, 我们可以采用以下代码:

sum([i+10 for i in a if (i%2==0) ])

如果是偶数位置的元素进行加10再求和,那代码如下:

sum([i+10 for in a[1::2] ])

先把偶数位置的数字通过列表下标分片取出来,然后在列表推导式进行遍历并加10,最后调用sum函数求和。