All is well 3 idiots

AC小小常

【Python基础知识】(33)三种内置生成式

一、列表生成式

# 1. 列表生成式,语法:[被追加的数据 循环语句 循环或者判断语句]
lst2 = [i * 10 for i in range(10, 20)]
print(lst2)  # 输出:[100, 110, 120, 130, 140, 150, 160, 170, 180, 190]
# 原本实现:
lst2 = []
for i in range(10, 20):
    lst2.append(i * 10)

lst3 = [i * 10 for i in range(10, 20) if i % 2 == 0]
print(lst3)  # 输出:[100, 120, 140, 160, 180]
# 原本实现:
lst3 = []
for i in range(10, 20):
    if i % 2 == 0:
        lst3.append(i * 10)

lst4 = [i * j for i in range(1, 5) for j in range(1, 5)]
print(lst4)  # 输出:[1, 2, 3, 4, 2, 4, 6, 8, 3, 6, 9, 12, 4, 8, 12, 16]
# 原本实现:
lst4 = []
for i in range(1, 5):
    for j in range(1, 5):
        lst4.append(i * j)

 

二 、字典生成式

# 2. 字典生成式
lst5 = ["张三", "李四", "王五"]
dict1 = {i: lst5[i] for i in range(0, len(lst5))}
print(dict1)  # 输出:{0: '张三', 1: '李四', 2: '王五'}
# 原本实现:
dict1 = {}
for i in range(0, len(lst5)):
    dict1[i] = lst5[i]

 

三、集合生成式

# 3. 集合生成式
set1 = {i * j for i in range(1, 4) for j in range(1, 4) if i == j}
print(set1)  # 输出:{1, 4, 9}
# 原本实现:
for i in range(1, 4):
    for j in range(1, 4):
        if i == j:
            set1 = i * j

 

posted on 2020-04-06 20:14  AC小小常  阅读(227)  评论(0编辑  收藏  举报

导航