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中的迭代器漫谈
Feb 03 Python
简述:我为什么选择Python而不是Matlab和R语言
Nov 14 Python
Python实现学生成绩管理系统
Apr 05 Python
python爬取拉勾网职位数据的方法
Jan 24 Python
Python使用cx_Oracle模块操作Oracle数据库详解
May 07 Python
Python pyinotify模块实现对文档的实时监控功能方法
Oct 13 Python
TensorFlow绘制loss/accuracy曲线的实例
Jan 21 Python
tensorflow2.0与tensorflow1.0的性能区别介绍
Feb 07 Python
查看jupyter notebook每个单元格运行时间实例
Apr 22 Python
用Python 爬取猫眼电影数据分析《无名之辈》
Jul 24 Python
Python filter()及reduce()函数使用方法解析
Sep 05 Python
一篇文章带你搞定Ubuntu中打开Pycharm总是卡顿崩溃
Nov 02 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
预告映像公开!第1章续篇剧场版动画《Princess Principal Crown Handler》4月10日上映!
2020/03/06 日漫
PHP页面间参数传递的四种方法详解
2013/06/09 PHP
微信支付的开发流程详解
2016/09/13 PHP
PHP中in_array的隐式转换的解决方法
2018/03/06 PHP
laravel 自定义常量的两种方案
2019/10/14 PHP
同一个表单 根据要求递交到不同页面的实现方法小结
2009/08/05 Javascript
javaScript 删除字符串空格多种方法小结
2012/10/24 Javascript
javascript的offset、client、scroll使用方法详解
2012/12/25 Javascript
javascript 三种方法实现获得和设置以及移除元素属性
2013/03/20 Javascript
jquery实现当滑动到一定位置时固定效果
2014/06/17 Javascript
用C/C++来实现 Node.js 的模块(二)
2014/09/24 Javascript
Javascript模块化编程详解
2014/12/01 Javascript
js实现仿百度汽车频道选择汽车图片展示实例
2015/05/06 Javascript
Jquery Easyui日历组件Calender使用详解(23)
2016/12/18 Javascript
socket.io学习教程之基本应用(二)
2017/04/29 Javascript
使用flow来规范javascript的变量类型
2019/09/12 Javascript
[55:03]LGD vs EG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Python实现冒泡,插入,选择排序简单实例
2014/08/18 Python
举例详解Python中yield生成器的用法
2015/08/05 Python
Python文本相似性计算之编辑距离详解
2016/11/28 Python
详解 Python 与文件对象共事的实例
2017/09/11 Python
运用TensorFlow进行简单实现线性回归、梯度下降示例
2018/03/05 Python
Python中利用aiohttp制作异步爬虫及简单应用
2018/11/29 Python
Python中psutil的介绍与用法
2019/05/02 Python
python实现车牌识别的示例代码
2019/08/05 Python
Python any()函数的使用方法
2019/10/28 Python
详解numpy1.19.4与python3.9版本冲突解决
2020/12/15 Python
浅谈html5 响应式布局
2014/12/24 HTML / CSS
域名注册、建站工具、网页主机、SSL证书:Dynadot
2017/01/06 全球购物
3个CCIE对一个工程师的面试题
2012/05/06 面试题
财务人员个人求职信范文
2013/12/04 职场文书
学习党课思想汇报
2013/12/29 职场文书
义务教育学校标准化建设汇报材料
2014/08/16 职场文书
公务员上班玩游戏检讨书
2014/09/17 职场文书
六一儿童节新闻稿
2015/07/17 职场文书
Python图像处理之图像拼接
2021/04/28 Python