推导式创建序列

推导式创建序列

1、列表推导式

列表推导式生成列表对象,语法如下:
[表达式 for item in 可迭代对象 ]
或者 :[ 表达式 for item in 可迭代对象 if 条件判断]

a=[x*2 for x in range(5)]
print(a)

结果为:[0, 2, 4, 6, 8]

a=[x*2 for x in range(5) if x%2==0]#符合if条件的然后在乘以2
print(a)

结果为:[0, 4, 8]

2、字典推导式

字典的推导式生成字典对象格式如下:
{keyexpression : valueexpression for 表达式 in 可迭代对象}
类似于列表推导式,字典推导式也可以增加if条件判断,多个for循环

a="i love you ,i love hi"
b={ i :a.count(i) for i in a}
print(b)

结果为:
{‘i’: 3, ’ ': 5, ‘l’: 2, ‘o’: 3, ‘v’: 2, ‘e’: 2, ‘y’: 1, ‘u’: 1, ‘,’: 1, ‘h’: 1}

3、集合推导式

集合推导式生成集合,和列表推导式的语法类似:
{表达式 for item in 可迭代对象}
或者:{表达式 for item in 可迭代对象 if 条件判断}

a={ i for i in range(10) if i%2==0}
print(a)
结果为:{0, 2, 4, 6, 8}

4、生成器推导式(生成元组)

a=(i for i in range(20) if i%2==0)
print(a)

结果为:
<generator object at 0x00000256B69054C8>

一个生成器只能用一次,第一次迭代可以得到数据,第二次迭代发现数据已经没有了

a=(i for i in range(20) if i%2==0)
print(a)
print(list(a))
print(list(a))

结果为:
<generator object at 0x000002948EF354C8>
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
[]

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值