[ ] 列表推导式,是用简单的语法来生成列表,

( ) 生成器表达式,是用简单的语法创建个生成器。

外观上仅括号不一样.

虽然写起来方便,但是读起来稍显费力,另外,不易调试。

# 列表推导式
print([i for i in range(9)]) # 原型
print([i*i for i in range(9)]) egg_list=['鸡蛋%s'%i for i in range(10)]
print(egg_list) # 生成器表达式 g = (i for i in range(10))
print(g)
print(g.__next__())
# for i in g:
# print(i) # 生成器表达式 VS 列表推导式
# 括号不一样
# 返回的值不一样 >> 几乎不占用内存

示例,嵌套,字典推导式,集合推导式

#[每一个元素或者是和元素相关的操作 for 元素 in 可迭代数据类型]    #遍历之后挨个处理
#[满足条件的元素相关的操作 for 元素 in 可迭代数据类型 if 元素相关的条件] #筛选功能 # #30以内所有能被3整除的数
ret = [i for i in range(30) if i%3 == 0] #完整的列表推导式
g = (i for i in range(30) if i%3 == 0) #完整的生成器表达式
print(ret)
print(g)
#
# #30以内所有能被3整除的数的平方
ret = [i*i for i in range(30) if i%3 == 0]
print(ret) # 嵌套列表中名字包含2个‘e’的所有名字
names = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Weseley', 'Steven', 'Joe'],
['Alice', 'Jill', 'Ana', 'Weendy', 'Jennifer', 'Sherry', 'Eva']]
ret = [name for lst in names for name in lst if name.count('e') >=2]
# ret = (name for lst in names for name in lst if name.count('e') ==2)
print(ret) #字典推导式
# 例一:将一个字典的key和value对调
mcase = {'a': 10, 'b': 34}
mcase_frequency = {mcase[k]: k for k in mcase}
print(mcase_frequency) # 例二:合并大小写对应的value值,将k统一成小写
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}
print(mcase_frequency) #集合推导式,自带结果去重功能
squared = {x**2 for x in [1, -1, 2]}
print(squared) #各种推导式 : 生成器 列表 字典 集合
#遍历操作
#筛选操作

python基础17_列表推导式 vs 生成器表达式的更多相关文章

  1. python基础知识15---三元表达式、列表推导式、生成器表达式、递归、匿名函数、内置函数

    阅读目录 一 三元表达式.列表推导式.生成器表达式 二 递归与二分法 三 匿名函数 四 内置函数 五 阶段性练习 一. 三元表达式.列表推导式.生成器表达式 1 三元表达式 name=input('姓 ...

  2. python之三元表达式、列表推导式、生成器表达式、递归、匿名函数、内置函数

    一 三元表达式.列表推导式.生成器表达式 一 三元表达式 name=input('姓名>>: ') res='SB' if name == 'alex' else 'NB' print(r ...

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

    http://www.cnblogs.com/linhaifeng/articles/7580830.html 三元表达式.列表推导式.生成器表达式.递归.匿名函数.内置函数

  4. python 三元表达式、列表推导式、生成器表达式

    一 三元表达式.列表推导式.生成器表达式 一 三元表达式 name=input('姓名>>: ') res='mm' if name == 'hahah' else 'NB' print( ...

  5. Python_迭代器、生成器、列表推导式,生成器表达式

    1.迭代器 (1)可迭代对象 s1 = ' for i in s1: print(i) 可迭代对象 示例结果: D:\Python36\python.exe "E:/Python/课堂视频/ ...

  6. Python3 三元表达式、列表推导式、生成器表达式

    Python3 三元表达式.列表推导式.生成器表达式 三元表达式 表达式中,有三个元素 name = input("请输入姓名: ")ret = '输入正确' if name == ...

  7. python全栈开发- day14列表推导式、生成器表达式、模块基础

    一.列表推导式 #1.示例 数据量小 egg_list=[] for i in range(10): egg_list.append('鸡蛋%s' %i) egg_list=['鸡蛋%s' %i fo ...

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

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

  9. python之旅:三元表达式、列表推导式、生成器表达式、函数递归、匿名函数、内置函数

    三元表达式 #以下是比较大小,并返回值 def max2(x,y): if x > y: return x else: return y res=max2(10,11) print(res) # ...

随机推荐

  1. python2.7安装

    下载地址:https://www.python.org/downloads/release/python-2716/ 尽量使用VPN,不然会很慢 安装后需要配置环境变量

  2. python 学习笔记 2 ----> dive into python 3

    Python Shell idle的使用 >>> >>>help() ----> help> 可以在help这个工具中查找Python内置函数的文档等等 ...

  3. Lab 10-1

    This lab includes both a driver and an executable. You can run the executable from anywhere, but in ...

  4. 同一个世界(erlang解题答案)

    最近玩同一个世界,才几关就把3次提示用完了,十分气愤, 于是写了程序来解~~~ o(^▽^)o 以2-1为例子,题目如下 以0代表白色,1代表黑色,抽象的就是这样的 ----------------- ...

  5. C语言函数声明什么时候可以省略,什么时候不能省?

    在学习C语言函数的时候,老师总会告诉我们函数要写声明,然后再定义.这是个稳健的做法.等我自己学习了其他高级语言以后,回头再来写C,突然就觉得函数要写声明有点麻烦.无意间发现有一次函数没写声明居然编译( ...

  6. css选择器以及使用场景

    1.选择器以及使用场景 id选择器:#header{} 类选择器:.header{} 元素选择器:div{} 子选择器:ul > li{} 后代选择器:div p{} 伪类选择器:a:hover ...

  7. AndroidStudio中导入jar包的方法

    1.首先去下载需要的jar包 2.将jar包复制到project下的app->libs目录下(如果不存在libs目录新建一个) 3.右击该jar包,选择add as library,弹出窗口,点 ...

  8. 缓存之Memcache

    Memcache Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度. ...

  9. MySQL Packets larger than max_allowed_packet are not allowed

    MySQL的一个系统参数:max_allowed_packet,其默认值为1048576(1M), 查询:show VARIABLES like '%max_allowed_packet%'; 修改此 ...

  10. C# 3.0 / C# 3.5 对象集合初始化器、匿名类

    对象集合初始化器 在 .NET 2.0 中构造一个对象的方法一是提供一个重载的构造函数,二是用默认的构造函数生成一个对象,然后对其属性进行赋值. 在 .NET 3.5/C# 3.0 中,我们有一种更好 ...