phython推导式

本文详细介绍了Python中的推导式,包括列表推导式、字典推导式和集合推导式。通过示例展示了如何使用这些推导式创建新的数据结构,以及它们在处理数据序列时的高效性和简洁性。
摘要由CSDN通过智能技术生成

推导式comprehensions(又称解析式),是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列的结构体。 共有三种推导:

1.列表(list)推导式

2.字典(dict)推导式

3.集合(set)推导式

一.列表推导式

用[]生成list

基本表达式

[表达式 for in 变量 列表]或者[表达式 for in 变量 列表 if 条件]

eg:求(x,y)其中x是0-5之间的偶数,y是0-5之间的奇数组成的元祖列表

>>>[(x,y) for in x range(5) if x%2==0 for in x range(5) if y%2==1]

列表推导式总共有两种形式:
①[x for x in data if condition]
    此处if主要起条件判断作用,data数据中只有满足if条件的才会被留下,最后统一生成为一个数据列表

②[exp1 if condition else exp2 for x in data]
    此处if...else主要起赋值作用,当data中的数据满足if条件时将其做exp1处理,否则按照exp2处理,最后统一生成为一个数据列表
eg:data = ['driver', '2017-07-13', 1827.0, 2058.0, 978.0, 1636.0, 1863.0, 2537.0, 1061.0]
(1)若我要取得以上列表中值大于2000的数值,这里可以使用列表推导式的形式①:

[x for x in data if x > 2000]

得到如下结果(字符串类型数据被认为是无穷大数):

 ['driver', '2017-07-13', 2058.0, 2537.0]

(2)若要解决我上面提到的问题,则需要使用列表推导式的形式②

[int(x) if type(x) == float else x for x in data]

得到结果:

 ['driver', '2017-07-13', 1827, 2058, 978, 1636, 1863, 2537, 1061]


1、使用[]生成list

基本格式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值