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分割TXT文件成4K的TXT文件
May 23 Python
Python中正则表达式的用法实例汇总
Aug 18 Python
Python使用MD5加密算法对字符串进行加密操作示例
Mar 30 Python
Python基于百度AI的文字识别的示例
Apr 21 Python
python读取和保存图片5种方法对比
Sep 12 Python
详解Python 多线程 Timer定时器/延迟执行、Event事件
Jun 27 Python
如何实现更换Jupyter Notebook内核Python版本
May 18 Python
keras打印loss对权重的导数方式
Jun 10 Python
idea2020手动安装python插件的实现方法
Jul 17 Python
pycharm2020.2 配置使用的方法详解
Sep 16 Python
pandas 按日期范围筛选数据的实现
Feb 20 Python
Python基础之教你怎么在M1系统上使用pandas
May 08 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
DC动画很好看?新作烂得令人发指,名叫《红色之子》
2020/04/09 欧美动漫
php 短链接算法收集与分析
2011/12/30 PHP
PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
2014/04/29 PHP
PHP命名空间(namespace)的使用基础及示例
2014/08/18 PHP
php微信公众平台配置接口开发程序
2016/09/22 PHP
PHP 配置后台登录以及模板引入
2017/01/24 PHP
PHP实现的常规正则验证helper公共类完整实例
2017/04/27 PHP
JQuery 无废话系列教程(二) jquery实战篇上
2009/06/23 Javascript
初学js 新节点的创建 删除 的步骤
2011/07/04 Javascript
Firefox中beforeunload事件的实现缺陷浅析
2012/05/03 Javascript
javascript学习笔记(十二) RegExp类型介绍
2012/06/20 Javascript
javascript图片相似度算法实现 js实现直方图和向量算法
2014/01/14 Javascript
jquery操作HTML5 的data-*的用法实例分享
2014/08/17 Javascript
JS实现的表格行鼠标点击高亮效果代码
2015/11/27 Javascript
深入浅析JavaScript中数据共享和数据传递
2016/04/25 Javascript
Bootstrap模态框水平垂直居中与增加拖拽功能
2016/11/09 Javascript
canvas绘制万花筒效果(代码分享)
2017/01/20 Javascript
解决Vue-cli npm run build生产环境打包,本地不能打开的问题
2018/09/20 Javascript
vue+node实现图片上传及预览的示例方法
2018/11/22 Javascript
JS高阶函数原理与用法实例分析
2019/01/15 Javascript
vue控制多行文字展开收起的实现示例
2019/10/11 Javascript
django实现分页的方法
2015/05/26 Python
在Python的Django框架中编写错误提示页面
2015/07/22 Python
谈谈Python进行验证码识别的一些想法
2016/01/25 Python
python django 访问静态文件出现404或500错误
2017/01/20 Python
完美解决在oj中Python的循环输入问题
2018/06/25 Python
python socket 聊天室实例代码详解
2019/11/14 Python
python中怎么表示空值
2020/06/19 Python
python线性插值解析
2020/07/05 Python
毕业生自荐书
2014/02/03 职场文书
学校党的群众路线教育实践活动总结报告
2014/07/03 职场文书
建筑质检员岗位职责
2015/04/08 职场文书
新学期新寄语,献给新生们!
2019/11/15 职场文书
Nginx 502 Bad Gateway错误原因及解决方案
2021/03/31 Servers
Vue.js中v-for指令的用法介绍
2022/03/13 Vue.js
排查MySQL生产环境索引没有效果
2022/04/11 MySQL