通过一行循环循环判断, 遍历出一系列数据的方式
1 """
2 推导式语法:
3 i for i in iterable
4
5 通过迭代对象循环得出的i,
6 扔到左侧进行处理,
7 处理结束后放到容器中
8
9
10 执行流程:
11 从左向右,
12 左边的循环是外循环, 右边的循环是内循环
13 进行右侧的条件判断后返回给最左边处理
14 左边可以是三目运算符
15 处理完毕后,放入容器进行返回
16 """
1.普通推导式
1 # [1,2,3,4] => [2,8,24,64]
2 listvar = [1, 2, 3, 4]
3
4 res = [i << i for i in range(1, 5)]
5 print(res)
6
7 '''
8 li = []
9 for i in range(1, 5):
10 li.append(i<<i)
11 print(li)
12 '''
2.带有判断条件推导式
1 # 最终值 + 推导式 + 单项分支
2 # [1,2,3,4,5,6,7,8,9,10,11] => [2,4,6,8,10]
3 listvar = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
4
5 li = [i for i in range(1, 12) if i % 2 == 0]
6 print(li)
7
8 '''
9 li = []
10 for i in range(1, 12):
11 if i % 2 == 0:
12 li.append(i)
13
14 print(li)
15 '''
3.多循环推导式
1 list1 = ["陈根基", "黄伟峰", "崔建伟", "陈鹏", "五月天"]
2 list2 = ["陈梦洁", "张包钱", "陈红萍", "五十辉", "李一凡"]
3
4 li = [i + "❤" + j for i in list1 for j in list2]
5 print(li)
4.带有判断条件的多循环推导式
1 list1 = ["陈根基", "黄伟峰", "崔建伟", "陈鹏", "五月天"]
2 list2 = ["陈梦洁", "张包钱", "陈红萍", "五十辉", "李一凡"]
3
4 li = [i + j for i in list1 for j in list2 if list1.index(i) == list2.index(j)]
5 print(li)
6
7 '''
8 li = []
9 for i in list1:
10 for j in list2:
11 if list1.index(i) == list2.index(j):
12 li.append((j, i))
13
14 print(li)
15 '''