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 相关文章推荐
django使用图片延时加载引起后台404错误
Apr 18 Python
python读取文件名称生成list的方法
Apr 27 Python
Python爬虫实现简单的爬取有道翻译功能示例
Jul 13 Python
Python类的继承、多态及获取对象信息操作详解
Feb 28 Python
基于python-opencv3的图像显示和保存操作
Jun 27 Python
DataFrame.to_excel多次写入不同Sheet的实例
Dec 02 Python
Pytorch .pth权重文件的使用解析
Feb 14 Python
Python使用Matlab命令过程解析
Jun 04 Python
pytorch中的weight-initilzation用法
Jun 24 Python
解决Python 函数声明先后顺序出现的问题
Sep 02 Python
Python3利用scapy局域网实现自动多线程arp扫描功能
Jan 21 Python
python 中 .py文件 转 .pyd文件的操作
Mar 04 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获取一定范围内取N个不重复的随机数
2016/05/28 PHP
php中类和对象:静态属性、静态方法
2017/04/09 PHP
PHP删除数组中指定下标的元素方法
2018/02/03 PHP
PHP7.3.10编译安装教程
2019/10/08 PHP
javascript 静态对象和构造函数的使用和公私问题
2010/03/02 Javascript
在Ajax中使用Flash实现跨域数据读取的实现方法
2010/12/02 Javascript
什么是DOM(Document Object Model)文档对象模型
2012/03/05 Javascript
javascript修改表格背景色实例代码分享
2013/12/10 Javascript
javascript实现十六进制颜色值(HEX)和RGB格式相互转换
2014/06/20 Javascript
javascript模拟map输出与去除重复项的方法
2015/02/09 Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
2016/05/11 Javascript
Vue.js一个文件对应一个组件实践
2016/10/27 Javascript
js无提示关闭浏览器窗口的两种方法分析
2016/11/06 Javascript
BootStrap与Select2使用小结
2017/02/17 Javascript
vue 全选与反选的实现方法(无Bug 新手看过来)
2018/02/09 Javascript
vue webpack打包优化操作技巧
2018/02/22 Javascript
微信小程序常用简易小函数总结
2019/02/01 Javascript
JS快速实现简单计算器
2020/04/08 Javascript
Vue为什么要谨慎使用$attrs与$listeners
2020/08/27 Javascript
python smtplib模块发送SSL/TLS安全邮件实例
2015/04/08 Python
Python中的自省(反射)详解
2015/06/02 Python
在Python的Django框架中加载模版的方法
2015/07/16 Python
基于python脚本实现软件的注册功能(机器码+注册码机制)
2016/10/09 Python
Python FtpLib模块应用操作详解
2019/12/12 Python
快时尚眼镜品牌,全国连锁眼镜店:LOHO眼镜生活
2018/10/08 全球购物
Simons官方网站:加拿大时尚零售商
2020/02/20 全球购物
贝佳斯官方网站:Borghese
2020/05/08 全球购物
业务经理岗位职责
2013/11/11 职场文书
测绘工程个人的自我评价
2013/11/23 职场文书
办公室主任竞聘演讲稿
2014/05/15 职场文书
2014年设计师工作总结
2014/11/25 职场文书
财务统计员岗位职责
2015/04/14 职场文书
民事答辩状格式范文
2015/05/21 职场文书
党小组意见范文
2015/06/08 职场文书
漂亮妈妈观后感
2015/06/08 职场文书
Win11自动黑屏怎么办 Win11自动黑屏设置教程
2022/07/15 数码科技