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