列表解析 List Comprehensions
表达式:[expression for iter_val in iterable if cond_expr]
- [expression]:最后执行的结果
- [for iter_val in iterable]:这个可以是一个多层循环
- [if cond_expr]:两个for间是不能有判断语句的,判断语句只能在最后;顺序不定,默认是左到右。
讨论下多个 for 循环的执行顺序。
从左到右:
>>>print[(x,y)for x in[1,2]for y in[3,4]]
[(1,3),(1,4),(2,3),(2,4)]
>>>print[(x,y)for x in[1,2]for y in[3,x]]
[(1,3),(1,1),(2,3),(2,2)]
>>>
从右到左:
>>>print[(x,y)for x in[1,y]for y in[3,4]]
[(1,3),(1,4),(2,3),(2,4)]
>>>