列表解析(需要改变列表而非新建一个列表)
[expression for expr in sequence1
for expr2 in sequence2```
for exprN in sequenceN
if condition]
对于满足条件的sequence,迭代sequence里面的所有内容,每一次迭代都把sequence里面的内容放到前面的expr对象中去,在表达式中应用这样的对象形成一个列表
>>>[x for x in range(10)][0,1,2,3,4,5,6,7,8,9]>>>[x**2for x in range(10)][0,1,4,9,16,25,36,49,64,81]>>>[x**2for x in range(10)if x**2<50][0,1,4,9,16,25,36,49]>>>[(x+1,y+1)for x in range(2)for y in range(2)][(1,1),(1,2),(2,1),(2,2)]
生成器表达式
(expression for expr in sequence1
for expr2 in sequence2```
for exprN in sequenceN
if condition)