Python列表推导式、字典推导式与集合推导式用法实例分析


Posted in Python onFebruary 07, 2018

本文实例讲述了Python列表推导式、字典推导式与集合推导式用法。分享给大家供大家参考,具体如下:

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

列表(list)推导式
字典(dict)推导式
集合(set)推导式

一、列表推导式

1、使用[]生成list

基本格式

variable = [out_exp_res for out_exp in input_list if out_exp == 2]

out_exp_res:

列表生成元素表达式,可以是有返回值的函数。
for out_exp in input_list

迭代input_list将out_exp传入out_exp_res表达式中。
if out_exp == 2

根据条件过滤哪些值可以。

例一:

multiples = [i for i in range(30) if i % 3 is 0]
print(multiples)
# Output: [0, 3, 6, 9, 12, 15, 18, 21, 24, 27]

例二:

def squared(x):
  return x*x
multiples = [squared(i) for i in range(30) if i % 3 is 0]
print multiples
# Output: [0, 9, 36, 81, 144, 225, 324, 441, 576, 729]

2、使用()生成generator

将俩表推导式的[]改成()即可得到生成器。

multiples = (i for i in range(30) if i % 3 is 0)
print(type(multiples))
# Output: <type 'generator'>

二、字典推导式

字典推导和列表推导的使用方法是类似的,只不中括号该改成大括号。直接举例说明:

例子一:大小写key合并

mcase = {'a': 10, 'b': 34, 'A': 7, 'Z': 3}
mcase_frequency = {
  k.lower(): mcase.get(k.lower(), 0) + mcase.get(k.upper(), 0)
  for k in mcase.keys()
  if k.lower() in ['a','b']
}
print mcase_frequency
# Output: {'a': 17, 'b': 34}

例子二:快速更换key和value

mcase = {'a': 10, 'b': 34}
mcase_frequency = {v: k for k, v in mcase.items()}
print mcase_frequency
# Output: {10: 'a', 34: 'b'}

三、集合推导式

它们跟列表推导式也是类似的。 唯一的区别在于它使用大括号{}。

例一:

squared = {x**2 for x in [1, 1, 2]}
print(squared)
# Output: set([1, 4])

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
用python写的一个wordpress的采集程序
Feb 27 Python
使用Python将数组的元素导出到变量中(unpacking)
Oct 27 Python
python使用opencv进行人脸识别
Apr 07 Python
Python 对象中的数据类型
May 13 Python
谈谈python中GUI的选择
Mar 01 Python
python3 读写文件换行符的方法
Apr 09 Python
python3中函数参数的四种简单用法
Jul 09 Python
python抓取多种类型的页面方法实例
Nov 20 Python
django序列化serializers过程解析
Dec 14 Python
python 实现字符串下标的输出功能
Feb 13 Python
python将dict中的unicode打印成中文实例
May 11 Python
如何将Pycharm中调整字体大小的方式设置为&quot;ctrl+鼠标滚轮上下滑&quot;
Nov 17 Python
浅析Python3爬虫登录模拟
Feb 07 #Python
Python实现的三层BP神经网络算法示例
Feb 07 #Python
Python 12306抢火车票脚本
Feb 07 #Python
django限制匿名用户访问及重定向的方法实例
Feb 07 #Python
Python用 KNN 进行验证码识别的实现方法
Feb 06 #Python
Python实现的径向基(RBF)神经网络示例
Feb 06 #Python
python实现淘宝秒杀聚划算抢购自动提醒源码
Jun 23 #Python
You might like
PHP 中英文混合排版中处理字符串常用的函数
2007/04/12 PHP
Laravel框架数据库CURD操作、连贯操作总结
2014/09/03 PHP
php实现改变图片直接打开为下载的方法
2015/04/14 PHP
Apache连接PHP后无法启动问题解决思路
2015/06/18 PHP
List the Codec Files on a Computer
2007/06/11 Javascript
json跟xml的对比分析
2008/06/10 Javascript
原始的js代码和jquery对比体会
2013/09/10 Javascript
jQuery+html5实现div弹出层并遮罩背景
2015/04/15 Javascript
微信小程序 wxapp视图容器 view详解
2016/10/31 Javascript
谈谈JS中常遇到的浏览器兼容问题和解决方法
2016/12/17 Javascript
微信小程序登录态控制深入分析
2017/04/12 Javascript
JS实现多张图片预览同步上传功能
2017/06/23 Javascript
nodejs+express搭建多人聊天室步骤
2018/02/12 NodeJs
微信小程序 函数防抖 解决重复点击消耗性能问题实现代码
2019/09/12 Javascript
微信小程序canvas截取任意形状的实现代码
2020/01/13 Javascript
javascript实现拼图游戏
2021/01/29 Javascript
[02:38]DOTA2超级联赛专访Loda 认为IG世界最强
2013/05/27 DOTA
[22:20]初生之犊-TI4第5名LGD战队纪录片
2014/08/13 DOTA
[02:32]“虐狗”镜头慎点 2016国际邀请赛中国区预选赛现场玩家采访
2016/06/28 DOTA
python实现随机梯度下降(SGD)
2020/03/24 Python
Python使用matplotlib绘制余弦的散点图示例
2018/03/14 Python
解决pandas read_csv 读取中文列标题文件报错的问题
2018/06/15 Python
python处理csv中的空值方法
2018/06/22 Python
python获取txt文件词向量过程详解
2019/07/05 Python
Python 中的 import 机制之实现远程导入模块
2019/10/29 Python
介绍一些UNIX常用简单命令
2014/11/11 面试题
学期研究性学习个人的自我评价
2014/01/09 职场文书
应届毕业生自荐信例文
2014/02/26 职场文书
2014年学生会主席工作总结
2014/11/07 职场文书
2014年保险公司工作总结
2014/11/22 职场文书
小学生优秀评语
2014/12/29 职场文书
2019个人年度目标制定攻略!
2019/07/12 职场文书
深度学习小工程练习之垃圾分类详解
2021/04/14 Python
python基础入门之字典和集合
2021/06/13 Python
python超详细实现完整学生成绩管理系统
2022/03/17 Python
MySQL数据库如何使用Shell进行连接
2022/04/12 MySQL