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基础知识_浅谈用户交互
May 31 Python
pandas 将list切分后存入DataFrame中的实例
Jul 03 Python
在python中安装basemap的教程
Sep 20 Python
用Python编写一个简单的CS架构后门的方法
Nov 20 Python
python 搭建简单的http server,可直接post文件的实例
Jan 03 Python
Python文本处理简单易懂方法解析
Dec 19 Python
Python中用pyinstaller打包时的图标问题及解决方法
Feb 17 Python
Django 设置多环境配置文件载入问题
Feb 25 Python
Python AutoCAD 系统设置的实现方法
Apr 01 Python
使用keras框架cnn+ctc_loss识别不定长字符图片操作
Jun 29 Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
Sep 29 Python
python 决策树算法的实现
Oct 09 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 选项及相关信息函数库
2006/12/04 PHP
Nginx服务器上安装并配置PHPMyAdmin的教程
2015/08/18 PHP
详解PHP原生DOM对象操作XML的方法
2016/10/17 PHP
Prototype使用指南之ajax
2007/01/10 Javascript
基于JQuery的Select选择框的华丽变身
2011/08/23 Javascript
JS打开图片另存为对话框实现代码
2012/12/26 Javascript
js QQ客服悬浮效果实现代码
2014/12/12 Javascript
jquery实现submit提交表单
2015/02/03 Javascript
js漂浮广告实现代码
2015/08/15 Javascript
JavaScript中获取纯正的undefined的方法
2016/03/06 Javascript
JS控制弹出悬浮窗口(一览画面)的实例代码
2016/05/30 Javascript
jQuery插件EasyUI获取当前Tab中iframe窗体对象的方法
2016/08/05 Javascript
JavaScript结合HTML DOM实现联动菜单
2017/04/05 Javascript
Javascript实现的StopWatch功能示例
2017/06/13 Javascript
详解nodejs实现本地上传图片并预览功能(express4.0+)
2017/06/28 NodeJs
解决vue-cli项目webpack打包后iconfont文件路径的问题
2018/09/01 Javascript
详解IOS微信上Vue单页面应用JSSDK签名失败解决方案
2018/11/14 Javascript
vue+Vue Router多级侧导航切换路由(页面)的实现代码
2018/12/20 Javascript
jquery css实现流程进度条
2020/03/26 jQuery
easyUI使用分页过滤器对数据进行分页操作实例分析
2020/06/01 Javascript
vue-iview动态新增和删除的方法
2020/06/17 Javascript
[02:43]2014DOTA2国际邀请赛 官方Alliance战队纪录片
2014/07/14 DOTA
python利用hook技术破解https的实例代码
2013/03/25 Python
解决nohup重定向python输出到文件不成功的问题
2018/05/11 Python
详解Python中的type和object
2018/08/15 Python
PYQT5实现控制台显示功能的方法
2019/06/25 Python
python自动循环定时开关机(非重启)测试
2019/08/26 Python
Python tkinter和exe打包的方法
2020/02/05 Python
python+opencv边缘提取与各函数参数解析
2020/03/09 Python
keras自定义损失函数并且模型加载的写法介绍
2020/06/15 Python
详解python实现可视化的MD5、sha256哈希加密小工具
2020/09/14 Python
如何使用python-opencv批量生成带噪点噪线的数字验证码
2020/12/21 Python
Bibloo奥地利:购买女装、男装、童装、鞋和配件
2018/10/18 全球购物
物业管理毕业生个人的求职信
2013/11/30 职场文书
小学班级口号
2014/06/09 职场文书
幼儿园户外活动总结
2014/07/04 职场文书