Python之列表生成式
列表生成式
一、生成列表[1, 4, 9, 16, 25, 36]
# 使用for in 循环L = []for i in range(1,7): L.append(i * i)print(L) # [1, 4, 9, 16, 25, 36]# 列表生成式L = [i * i for i in range(1,7)]print(L) # [1, 4, 9, 16, 25, 36]
二、列表生成式中循环带if嵌套,例如:不取余2的时候,与自身相乘
#使用for in循环和ifL = []for i in range(1,7): if not i % 2: L.append(i * i)print(L) #[4, 16, 36]# 列表生成式L = [i * i for i in range(1,7) if not i % 2]print(L) # [4, 16, 36]
三、支持双重循环
# 双重for in循环L = []for i in range(1,4): for j in range(1,4): L.append([i,j])print(L) # [[1, 1], [1, 2], [1, 3], [2, 1], [2, 2], [2, 3], [3, 1], [3, 2], [3, 3]]#列表生成式L = [ [i,j] for i in range(1,4) for j in range(1,4)]print(L) # [[1, 1], [1, 2], [1, 3], [2, 1], [2, 2], [2, 3], [3, 1], [3, 2], [3, 3]]
四、 双重循环嵌套if
# 双重循环嵌套ifL = []for i in range(1,4): for j in range(1,4): if not i == j: L.append((i,j))print(L) # [(1, 2), (1, 3), (2, 1), (2, 3), (3, 1), (3, 2)]# 列表生成式L = [ (i,j) for i in range(1,4) for j in range(1,4) if not i == j]print(L) # [(1, 2), (1, 3), (2, 1), (2, 3), (3, 1), (3, 2)]
五、列表中嵌套列表
# for in 循环实现L2 = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]L = []# 大循环取索引for i in range(4): L1 = [] # 小循环取列表中的元素[1,2,3,4],[5,6,7,8],[9,10,11,12] for j in L2: L1.append(j[i]) L.append(L1)print(L) # [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]#列表生成式L = [[ j[i] for j in L2 ] for i in range(4)]print(L) # [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。