python字典生成式_Python三种内置生成式

1. 列表生成式

math?formula=%5Ccolor%7Bgreen%7D%7B%E8%AF%AD%E6%B3%95%EF%BC%9A%7D

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

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

math?formula=%5Ccolor%7Bblue%7D%7B%E7%A4%BA%E4%BE%8B1%EF%BC%9A%7D

# 原表达式

lst1 = []

for i in range(10, 20):

lst1.append(i * 10)

print(lst1)

# 使用列表生成式

lst1 = [ i * 10 for i in range(10, 20)]

print(lst1)

math?formula=%5Ccolor%7Bblue%7D%7B%E7%A4%BA%E4%BE%8B2%EF%BC%9A%7D

# 原表达式(判断)

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)

math?formula=%5Ccolor%7Bblue%7D%7B%E7%A4%BA%E4%BE%8B3%EF%BC%9A%7D

# 原表达式(嵌套)

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. 字典生成式

math?formula=%5Ccolor%7Bgreen%7D%7B%E8%AF%AD%E6%B3%95%EF%BC%9A%7D

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

math?formula=%5Ccolor%7Bblue%7D%7B%E7%A4%BA%E4%BE%8B%EF%BC%9A%7D

# 原表达式

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)

math?formula=%5Ccolor%7Bblue%7D%7B%E7%A4%BA%E4%BE%8B2%EF%BC%9A%7D

# 原表达式

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. 集合生成式

math?formula=%5Ccolor%7Bgreen%7D%7B%E8%AF%AD%E6%B3%95%EF%BC%9A%7D

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

math?formula=%5Ccolor%7Bblue%7D%7B%E7%A4%BA%E4%BE%8B%EF%BC%9A%7D

# 原表达式

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值