推导式 comprehensions(又称解析式):是 Python 中很强大的、很受欢迎的特性,具有语言简洁,速度快等优点。推导式包括:

1. 列表推导式
2. 字典推导式
3. 集合推导式

对以上的三种推导式分别举例分析:

一、列表推导式


1、使用 [] 生成 list

例如:

list = [ i for i in range(20) if i%2 == 0 ]
print(list) #output:[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

2、使用 () 生成 generator

将列表推导式的 [] 换成 () 即可得到生成器。

generator = ( i for i in range(20) if i%2 == 0 )
print(generator) #output:<generator object <genexpr> at 0x0000000000B5CA40>

通过 next() 就可以依次调用生成器中的数据。

二、字典推导式


存在 key 和 value,使用的是 {}。

dic = { "A":1, "b":2, "C":3, "d":4 }
new_dic = { k:v for k,v in dic.items() if k <= 'a'}
print(new_dic) #output:{'C': 3, 'A': 1}

三、集合推导式


它跟列表推导式也是类似的。区别在于它使用大括号 {},并且数据是无序和无重复的。

Set = { i**2 for i in [1,2,3,4,5,3] }
print(Set) #output:{16, 1, 4, 9, 25}

Python 的几种推导式的更多相关文章

  1. Python函数04/生成器/推导式/内置函数

    Python函数04/生成器/推导式/内置函数 目录 Python函数04/生成器/推导式/内置函数 内容大纲 1.生成器 2.推导式 3.内置函数(一) 4.今日总结 5.今日练习 内容大纲 1.生 ...

  2. python 生成器和各种推导式

    ##################################总结############################### 什么是迭代器? 可迭代对象通过__iter__()可以转换成迭代 ...

  3. Python之路----列表推导式和生成器的表达式

    列表推导式 egg_list=['鸡蛋%s'%i for i in range(10)] print(egg_list) 列表推导式 推导过程 egg_list = [] for i in range ...

  4. python学习笔记013——推导式

    1 推导式简介 推导式comprehensions(又称解析式),是Python的一种独有特性. 推导式是可以从一个数据序列构建另一个新的数据序列的结构体. 推导式有三种形式: 1)列表推导式 (li ...

  5. python中的列表推导式——轻量级循环

    列表推导式(list comprehension)是利用其他列表创建新列表(类似于数学术语中的集合推导式)的一种方法.它的工作方式类似于for循环,也很简单. 列表推导式书写形式: [表达式 for ...

  6. python 三元运算符、推导式、递归、匿名函数、内置函数

    三目运算符 # 三目(元)运算符:就是 if...else...语法糖 # 前提:简化if...else...结构,且两个分支有且只有一条语句 # 注:三元运算符的结果不一定要与条件直接性关系 cmd ...

  7. python 三元表达式 列表推导式,生成器表达式。递归,匿名函数, 内置函数

    三元表达式 三元表达式仅应用于: 1.条件成立返回一个值 2.条件不成立返回一个值 res = x if x>y else y print(res) name= input("姓名&g ...

  8. Python中的列表推导式

    Python里面有个很棒的语法糖(syntactic sugar),它就是 list comprehension ,有人把它翻译成“列表推导式”,也有人翻译成“列表解析式”.名字听上去很难理解,但是看 ...

  9. python生成器和各种推导式

    一. 生成器 本质就是迭代器. 一个一个的创建对象 创建生成器的方式: 1. 生成器函数 2. 通过生成器表达式来获取生成器 3. 类型转换(看不到) 二. 生成器函数 (重点) 生成器函数中包含 y ...

随机推荐

  1. 2018上IEC计算机高级语言(C)作业 第1次作业

    1.经过这几周的学习,总结一下学习的心得与体会.(不少于100字:10分) 学习c语言已经一个学期了,刚开始学习的时候老是感觉力不从心.虽然认真听课了, 但是并不能理解它.这种情况到了后来才有所改变. ...

  2. php memcache 基础操作

    <?php/** * Memcache缓存操作 * @author hxm * @version 1.0 * @since 2015.05.04 */class MCache extends O ...

  3. VM无法连接到虚拟机

    The VMware Authorization Service is not running. 原因 虚拟机服务没有开启 解决方法 1.      我的电脑右击->管理 2.      打开服 ...

  4. centos 7下 django 1.11 + nginx 1.12 + uwsgi 2.0

    之前写过一个博客关于如何安装django的,见下网址, http://www.cnblogs.com/qinhan/p/8732626.html 还有一个网址如何安装nginx的 http://www ...

  5. HTML中Meta标签中http-equiv属性小结

    HTML中Meta标签中http-equiv的用法: <meta http-equiv="这里是参数" content="这里是参数值"> 1.Ex ...

  6. 深入理解SpringCloud与微服务构建学习总结

    说明:用时 from 2018-11-16 to 2018-11-23 七天 0 放在前面   什么是微服务?   微服务是一个分布式系统.微服务架构的风格,就是将单一程序开发成一个微服务,每个微服务 ...

  7. magic cube

    搜索题, 每个状态能扩展出12种状态,最多进行5次旋转12^5 要用到iddfs,或者我看到网上其他人用的ida* 我也是参考了别人的代码,而且这个题vj上有点问题,我看数据看了半天,愣是没看明白第二 ...

  8. yum-Remi源配置

    Remi repository 是包含最新版本 PHP 和 MySQL 包的 Linux 源,由 Remi 提供维护. 有个这个源之后,使用 YUM 安装或更新 PHP.MySQL.phpMyAdmi ...

  9. hiho 第六周 01背包

    简单的01背包,没有报名,这周的没有权限提交 #include<iostream> #include<memory.h> using namespace std; #defin ...

  10. Java字符串池(String Pool)深度解析

    版权声明:本文为博主原创文章,转载请注明出处,欢迎交流学习! 在工作中,String类是我们使用频率非常高的一种对象类型.JVM为了提升性能和减少内存开销,避免字符串的重复创建,其维护了一块特殊的内存 ...