Python三种内置生成式


1. 列表生成式

  • \color{green}{语法:}

列表 = [被追加的数据 循环语句 循环或判断语句]

生成式内不限制循环语句和判断语句的条数,但如果过长的话,为避免影响阅读效果,建议使用展开的方式

  • \color{blue}{示例1:}
# 原表达式
lst1 = []
for i in range(10, 20):
    lst1.append(i * 10)
print(lst1)

# 使用列表生成式
lst1 = [ i * 10 for i in range(10, 20)]
print(lst1)
  • \color{blue}{示例2:}
# 原表达式(判断)
lst2 = []
for i in range(10, 20):
    if i % 2 == 0:
        lst2.append(i * 10)
print(lst2)

# 使用列表生成式
lst2 = [i * 10 for i in range(10, 20) if i % 2 ==0]
print(lst2)
  • \color{blue}{示例3:}
# 原表达式(嵌套)
lst3 = []
for i in range(1, 5):
    for j in range(1, 5):
        lst3.append(i * j)
print(lst3)

# 使用列表生成式
lst3 = [i * j for i in range(1, 5) for j in range(1, 5)]
print(lst3)

2. 字典生成式

  • \color{green}{语法:}

字典 = {键数据:值数据 循环语句 循环或判断语句}

  • \color{blue}{示例:}
# 原表达式
dict1 = {}
lst = ['张三', '李四', '王五']
for i in range(0, len(lst)):
    dict1[i+1] = lst[i]
print(dict1)

# 使用字典生成式
lst = ['张三', '李四', '王五']
dict1 = {i+1:lst[i] for i in range(0, len(lst))}
print(dict1)
  • \color{blue}{示例2:}
# 原表达式
dict1 = {}
lst = ['春天', '夏天', '秋天', '冬天']
for  i in range(0, len(lst)):
    dict1['season' + str(i+1)] = lst[i]
print(dict1)

# 使用字典生成式
lst = ['春天', '夏天', '秋天', '冬天']
dict1 = {'season' + str(i+1):lst[i] for i in range(0, len(lst))}
print(dict1)

3. 集合生成式

  • \color{green}{语法:}

集合 = {被追加的数据 循环语句 循环或判断语句}

  • \color{blue}{示例:}
# 原表达式
set1 = set()
for i in range(1, 4):
    for j in range(1, 4):
        if i == j:
            set1.add(i * j)
print(set1)

# 使用集合生成式
set1 = {i * j for i in range(1, 4) for j in range(1, 4) if i == j}
print(set1)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容