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 相关文章推荐
探索Python3.4中新引入的asyncio模块
Apr 08 Python
在Django的session中使用User对象的方法
Jul 23 Python
详解Python自建logging模块
Jan 29 Python
解决python中使用plot画图,图不显示的问题
Jul 04 Python
windows下 兼容Python2和Python3的解决方法
Dec 05 Python
Python使用字典的嵌套功能详解
Feb 27 Python
python实现Virginia无密钥解密
Mar 20 Python
PyTorch预训练的实现
Sep 18 Python
python3+selenium获取页面加载的所有静态资源文件链接操作
May 04 Python
python获取linux系统信息的三种方法
Oct 14 Python
python实现双人五子棋(终端版)
Dec 30 Python
java关于string最常出现的面试题整理
Jan 18 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
40个迹象表明你还是PHP菜鸟
2008/09/29 PHP
php 取得瑞年与平年的天数的代码
2009/08/10 PHP
php 批量添加多行文本框textarea一行一个
2014/06/03 PHP
php数组合并array_merge()函数使用注意事项
2014/06/19 PHP
PHP使用DOMDocument类生成HTML实例(包含常见标签元素)
2014/06/25 PHP
Thinkphp和onethink实现微信支付插件
2016/04/13 PHP
php实现支持中文的文件下载功能示例
2017/08/30 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
Firefox window.close()的使用注意事项
2009/04/11 Javascript
页面中body onload 和 window.onload 冲突的问题的解决
2009/07/01 Javascript
js中函数调用的两种常用方法使用介绍
2014/07/17 Javascript
JS重载实现方法分析
2016/12/16 Javascript
详解NodeJs支付宝移动支付签名及验签
2017/01/06 NodeJs
React中上传图片到七牛的示例代码
2017/10/10 Javascript
vue下拉菜单组件(含搜索)的实现代码
2018/11/25 Javascript
详解JS取出两个数组中的不同或相同元素
2019/03/20 Javascript
从0到1搭建element后台框架优化篇(打包优化)
2019/05/12 Javascript
JS利用prototype给类添加方法操作详解
2019/06/21 Javascript
复习Python中的字符串知识点
2015/04/14 Python
Python读写txt文本文件的操作方法全解析
2016/06/26 Python
Python 运行.py文件和交互式运行代码的区别详解
2019/07/02 Python
Django 权限认证(根据不同的用户,设置不同的显示和访问权限)
2019/07/24 Python
详解python中*号的用法
2019/10/21 Python
如何在django中添加日志功能
2020/02/06 Python
HTML5组件Canvas实现图像灰度化(步骤+实例效果)
2013/04/22 HTML / CSS
德国EGOIST网店:销售畅销的设计师品牌
2017/04/18 全球购物
美国新兴城市生活方式零售商:VILLA
2017/12/06 全球购物
全球领先的在线cosplay服装商店:RoleCosplay
2020/01/18 全球购物
什么是.net的Remoting技术
2016/07/08 面试题
电子商务专业个人的自我评价
2013/12/19 职场文书
护士岗位求职应聘自荐书范文
2014/02/12 职场文书
幼儿园亲子活动通知
2015/04/24 职场文书
如何使用flask将模型部署为服务
2021/05/13 Python
OpenCV-Python实现人脸美白算法的实例
2021/06/11 Python
Python获取字典中某个key的value
2022/04/13 Python
python绘制云雨图raincloud plot
2022/08/05 Python