列表生成式的结构是在一个中括号里包含一个表达式,然后是一个for语句,然后是0个或多个for或者if语句。列表表达式可以是任意的,意思是你可以在列表中放入任意类型的对象。
返回结果将是一个新的列表,在这个以if和for语句为上下文的表达式运行完成之后产生。
# 想得到1-10的平方组成的list
print([x*x for x in range(1,10)])
# 想得到1-10中为偶数的平方组成的list
print([x*x for x in range(1,10) if x %2 ==0])
# 想得到多重嵌套中的数是2的倍数的平方组成的list
example2 = [[1,2,3],[4,5,6],[7,8,9],[10]]
print([item2*item2 for item1 in example2 for item2 in item1 if item2 %2 ==0])
# 想得到多重嵌套的list中一重嵌套中list长度大于1的list中的数为2的倍数的平方组成的list
example4 = [[1,2,3],[4,5,6],[7,8,9],[10]]
print([item2*item2 for item1 in example4 if len(item1)>1 for item2 in item1 if item2 %2 ==0])
#想得到嵌套列表中 删除负数的部分,不改变原来的嵌套列表结构
li1 =[
[-1, 2, -3],
[4, -5, 6]
]
li2 = [ [i for i in list_index if i >0] for list_index in li1 ]
print(li2)