Python里面有个很棒的语法糖(syntactic sugar),它就是 list comprehension
,可以方便的操作list, dict, set等数据结构。有人把它翻译成“列表推导式”,也有人翻译成“列表解析式”。名字听上去很难理解,但是看它的语法就很清晰了。虽然名字叫做 list comprehension,但是这个语法同样适用于dict、set等这一系列可迭代(iterable)数据结构。
语法规范:
out_list = [out_express for out_express in input_list if out_express_condition]
其中的 if
条件判断根据需要可有可无。
下面看一个具体的例子,生成一个包含10以内的偶数的list:
In [1]: evens = [i for i in range(10) if i % 2 == 0]
In [2]: evens
Out[2]: [0, 2, 4, 6, 8]
由for循环升级到列表推导式:
在没有了解list comprehension
之前,上面那个生成偶数list的通常做法是用for
循环:
evens = []