列表解析式的语法是 [expr for iter_var in list if cond_expr],看成是[expression for 循环语句 if 条件判断语句]
其中的for循环语句和if条件判断语句可以嵌套,就是普通的for循环嵌套。[expression for 循环语句 for 循环语句for 循环语句… if 条件判断语句],if条件判断语句也是一样。我一开始觉得难以理解的是表达式的写法。查阅一番后,我觉得这个expression表达句就是你想要列表呈现的效果,前提是你的循环与条件语句写的正确。像下面这样
colors = ['red', 'blue', 'black', 'white']
sizes = [1, 2, 5]
li = [(color, size) for color in colors for size in sizes]
print(li)
#[('red', 1), ('red', 2), ('red', 5), ('blue', 1), ('blue', 2), ('blue', 5), ('black', 1), ('black', 2), ('black', 5), ('white', 1), ('white', 2), ('white', 5)]
我想要一个尺寸与颜色对照的列表,输出表现形式是(颜色,大小),那我的expression就写成(color,size)
[ (color,size) for color in colors for size in sizes]
a = [i ** 2 for i in range(1, 10)] print(a)
我想要的列表内容是1-9的平方,那我的expression就写成 i**2
[ i**2 for i in range(1,10)]



