推导式 生成器

1.推导式生成列表

 [表达式 for item in  可迭代对象  ]    或者:[表达式 for item in  可迭代对象 if 条件判断]

#推导式生成列表
ls = [x for x in range(1,5) if x%2 ==0]
[2, 4]

2.生成器生成元组

 (表达式 for item in  可迭代对象)    或者:(表达式 for item in  可迭代对象 if 条件判断)

一个生成器只能运行一次。第一次迭代可以得到数据,第二次迭代没有数据

#生成器生成元组
gnt = (a for a in range(5))
print(gnt)
print(tuple(gnt))       #用tuple生成元组
print(tuple(gnt))    #第二次打印,遍历一次


<generator object <genexpr> at 0x01ED1C00>
(0, 1, 2, 3, 4)
()

3.推导式生成字典

{key_expression : value_expression for 表达式 in 可迭代对象}   字典推导也可以增加 if 条件判断、多个 for 循环

#推导式生成字典
zd = "isfaergargareg"
zd1 = {key1:zd.count(key1) for key1 in  zd}
print(zd1)


{'i': 1, 's': 1, 'f': 1, 'a': 3, 'e': 2, 'r': 3, 'g': 3}

4.推导式生成集合

{表达式 for item in  可迭代对象  }   或者:{表达式 for item in  可迭代对象 if 条件判断}

#集合推导式
jh = "asdawefawef"
cd = {a for a in jh}
print(cd)

{'f', 's', 'a', 'd', 'w', 'e'}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值