# 『Python基础-12』各种推导式(列表推导式、字典推导式、集合推导式)

推导式comprehensions(又称解析式),是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列的结构体。 共有三种推导,在Python2和3中都有支持:

目录:

  1. 列表(list)推导式
  2. 字典(dict)推导式
  3. 集合(set)推导式

1.列表推导式

1.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)

运行结果: [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

运行结果: [0, 9, 36, 81, 144, 225, 324, 441, 576, 729]

1.2、 使用()生成generator

将俩表推导式的[]改成()即可得到生成器:

multiples = (i for i in range(30) if i % 3 is 0)
print(type(multiples))

运行结果:<type 'generator'>

2. 字典推导式

字典推导和列表推导的使用方法是类似的,只不中括号该改成大括号。

示例一: 大小写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

运行结果:{'a': 17, 'b': 34}

示例二: 快速更换key和value:

mcase = {'a': 10, 'b': 34}
mcase_frequency = {v: k for k, v in mcase.items()}
print mcase_frequency

运行结果:{10: 'a', 34: 'b'}

3. 集合推导式

它们跟列表推导式也是类似的。 唯一的区别在于它使用大括号{}。

squared = {x**2 for x in [1, 1, 2]}
print(squared)

运行结果: Output: set([1, 4])

这篇笔记来自: cnblog


Thanks Reading ! ♪(・ω・)ノ

转载于:https://www.cnblogs.com/gybb/p/9792657.html

『Python基础-12』各种推导式(列表推导式、字典推导式、集合推导式)相关推荐

  1. 『Python基础-11』集合 (set)

    # 『Python基础-11』集合 (set) 目录: 集合的基本知识 集合的创建 访问集合里的值 向集合set增加元素 移除集合中的元素 集合set的运算 1. 集合的基本知识 集合(set)是一个 ...

  2. 将整数k转换成实数python表达式_『Python基础-5』数字,运算,转换

    『Python基础-5』数字,运算,转换 目录 基本的数字类型 二进制,八进制,十六进制 数字类型间的转换 数字运算 1. 数字类型 Python 数字数据类型用于存储数学上的值,比如整数.浮点数.复 ...

  3. 『Python基础-9』元祖 (tuple)

    『Python基础-9』元祖 (tuple) 目录: 元祖的基本概念 创建元祖 将列表转化为元组 查询元组 更新元组 删除元组 1. 元祖的基本概念 元祖可以理解为,不可变的列表 元祖使用小括号括起所 ...

  4. 『Python基础练习题』day01

    个人主页: https://lipeiguan.top 1.简述变量命名规范 2.name = input(">>>") name变量是什么数据类型? 3.if条 ...

  5. Python基础学习笔记-05字符串、列表、推导式;老师工位随机分配random.shuffle()、算术运算打分例题;

    字符串.列表.推导式 python数据类型: #可变数据: 列表List.字典Dictionary.集合Set . #不可变数据:数值Number(int.float.bool.complex).字符 ...

  6. python爬虫群_(招募截止)『Python爬虫小分队』学习群第三期招募

    一个月多月没有更新文章了,这次一上来就是广告,还是硬广 .感谢大家记得,还有不少同学在问第三期什么时候开,这就来了- 一.不是程序员而会编程为你的工作带来了哪些优势? 这是知乎上的一个问题.总结一下知 ...

  7. python报名_(招募结束,停止报名)『Python爬虫小分队』群招募公告

    一.『Python爬虫小分队』群说明 『Python爬虫小分队』(以下简称学习群)是 付费学习群,包括微信群和QQ群. 日常任务布置,学习交流,主要用微信群,QQ群用于演示讲解.远程辅助协助. 参加学 ...

  8. 【马士兵】Python基础--12

    Python基础–12 文章目录 Python基础--12 字符串比较 字符串切片 格式化字符串 字符串的编码与解码 知识点总结 字符串比较 print('apple'>'app') print ...

  9. c语言程序乔奎,『C  基础入门』C语言的数据序列化

    新推波形开秤才子惹眼,捕鱼球节频度驿亭翘板.封神崴瑞侧室佩带盘存寺里!契刻嘟囔笑窝明智发泡画策『C 基础入门』C语言的数据序列化?浓度满袋伴娘冷烫拿放杀戮行者酷爱,『C 基础入门』C语言的数据序列化伴 ...

最新文章

  1. Android编程:解决异常“android.view.InflateException: Binary XML file line # : Error inflating class”
  2. 你应该将应用迁移到Spring 4的五个原因
  3. 使用Process.Start打开文件夹或网页
  4. 读书--编写高质量代码 改善C#程序的157个建议2
  5. 农民工上网求职事半功倍
  6. 学习中接触的计算机概念
  7. 【贪心】最佳浏览路线问题
  8. pandas将字符串转换成时间_pandas入门: 时间字符串转换为年月日
  9. python搭建环境的心得体会_python学习第一天_环境的搭建
  10. 特斯拉股价创新高 马斯克嘚瑟:股价真高 哈哈!
  11. 用户奖励体系有哪些反作弊的机制?
  12. 【转】网站ICP备案和公安备案流程
  13. c语言中malloc的作用,malloc函数-malloc函数,详解
  14. 用户行为分析 无埋点代码
  15. 电脑上的软件卸载不了怎么办
  16. 游戏平台搭建韩国大带宽CN2服务器哪里的比较便宜
  17. OpenCV + ORC 实现身份证识别
  18. 人人憎恨的大数据杀熟你了解吗? 大数据杀熟”是否真的存在?
  19. 手机百度浏览器底部fixed悬浮框屏蔽,出来一会自动消失了
  20. Windows下swig安装与配置

热门文章

  1. 机器学习笔试面试超详细总结(一)
  2. Linux TCP/IP中L4L3的实现框架:udp recv部分
  3. 如果波音公司破产,对美国经济的影响有多大?
  4. python添加时间戳_在python中添加时间戳
  5. python range函数怎么表示无限_Python for循环与range函数的使用详解
  6. sql 没有调试 菜单_MySQL递归查询上下级菜单
  7. android 数据库 字节数组,Android上的GreenDAO:字节数组作为主键/构建包含字节数组属性Where子句的查询...
  8. php斯芬克斯,斯芬克斯之迷——ie私有属性haslayout的困扰
  9. c# treeview查找并选中节点_最通俗易懂的二叉查找树(BST)详解
  10. Git很简单--图解攻略