详解python列表生成式和列表生成式器区别


Posted in Python onMarch 27, 2019

本文实例为大家分享了python(列表生成式/器)的具体代码,供大家参考,具体内容如下

一、列表生成式

#列表生成式是快速生成一个列表的一些公式
numbers = []
for x in range(0,101):
  numbers.append(x)
print(numbers)
#[要放入列表的数据 简单的表达式1 表达式2]
#x for x in range(0,101) for循环遍历出来的值,放入列表中
numbers =[x for x in range(0,101)]
print(numbers)

二、小例子

#列表中存放0-100的偶数
#普通写法
numbers = []
for x in range(0,101):
  if x%2 == 0:
    numbers.append(x)
print(numbers)
#for 循环遍历0-101的数字,如果数字对2 取余==0,表示是偶数,x放在列表中
numbers = [x for x in range(0,101) if x%2==0]
print(numbers)
#列表中存放0-100的奇数
numbers = [x for x in range(0,101) if x%2!=0]
print(numbers)
list1 = ['asd','sdf','freg','sfag','refv','aser','sdfr','dfgi']
#取出所有带a的
#普通写法
rs_list = []
for s in list1:
  if 'a' in s:
    rs_list.append(s)
print(rs_list)
#列表生成式
list2 = [x for x in list1 if 'a' in x]
print(list2)
#普通双重for循环
list7 =[]
for x in range(0,10):
  for y in range(10,20):
    s = x*y
    list7.append(s)
print(list7)
#支持双重for循环
list3 = [x*y for x in range(0,10) for y in range(10,20)]
print(list3)

三、字典生成式

#dict_1.item()
list4 = [('name','zhangsan'),('age',22),('phone',110)]
#for循环遍历列表,将列表中小元组key和value取出,作为字典中的key:value
dict_1 = {key:value for key,value in list4}
print(dict_1)

四、列表生成器和列表生成式的区别

list6 = [x for x in range(10)]
print(list6)
#generator列表生成器
#生成的是一个对象,不会把数据直接创建出来,当for遍历的时候,生成器对象会调用next()函数,获取下一个要生成的数据
generator = (x for x in range(10))
#生成式对象可以调用next()函数获取下一个要生成的数字,如果next()函数没有获取到下一个数据,会抛出异常StopIteration ,程序出错
#生成式对象可以使用for遍历,使用next()不停的获取下一个数据,如果没有下一个数据循环结束
for x in generator:
  print(x)

列表生成式: 会将所有的结果全部计算出来,把结果存放到内存中,如果列表中数据比较多,会占用过多的内存空间,可能导致MemoryError内存错误或者导致程序在运行时出现卡顿的情况

列表生成器:会创建一个列表生成器对象,不会一次性的把所有结果都计算出来,如果需要序号获取数据,可以使用next()函数来获取,但要注意,一旦next()函数获取不到数据,会导致出现StopIteration异常错误,可以使用 for循环遍历生成器对象,获取所有数据

视情况而定,如果数据量比较大,推荐使用生成器;
python2.7中就是 range(生成式) 和xrange(生成器) 的区别

以上所述是小编给大家介绍的python(列表生成式/器)详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python中几个比较常见的名词解释
Jul 04 Python
Python实现统计文本文件字数的方法
May 05 Python
python中将字典形式的数据循环插入Excel
Jan 16 Python
Python continue继续循环用法总结
Jun 10 Python
Flask框架响应、调度方法和蓝图操作实例分析
Jul 24 Python
CentOS6.9 Python环境配置(python2.7、pip、virtualenv)
May 06 Python
django框架CSRF防护原理与用法分析
Jul 22 Python
python 爬虫百度地图的信息界面的实现方法
Oct 27 Python
Python的形参和实参使用方式
Dec 24 Python
如何打包Python Web项目实现免安装一键启动的方法
May 21 Python
python如何获得list或numpy数组中最大元素对应的索引
Nov 16 Python
Python爬虫入门教程01之爬取豆瓣Top电影
Jan 24 Python
Python3实现的回文数判断及罗马数字转整数算法示例
Mar 27 #Python
详解Django项目中模板标签及模板的继承与引用(网站中快速布置广告)
Mar 27 #Python
python模块之subprocess模块级方法的使用
Mar 26 #Python
详解Python数据可视化编程 - 词云生成并保存(jieba+WordCloud)
Mar 26 #Python
Python实现的矩阵转置与矩阵相乘运算示例
Mar 26 #Python
深度辨析Python的eval()与exec()的方法
Mar 26 #Python
详解Python locals()的陷阱
Mar 26 #Python
You might like
PHP严重致命错误处理:php Fatal error: Cannot redeclare class or function
2017/02/05 PHP
php实现基于PDO的预处理示例
2017/03/28 PHP
阿里对象存储OSS在laravel框架中的使用方法
2019/10/13 PHP
为JavaScript提供睡眠功能(sleep) 自编译JS引擎
2010/08/16 Javascript
javascript 弹出层组件(升级版)
2011/05/12 Javascript
js类式继承的具体实现方法
2013/12/31 Javascript
jquery中的常用事件bind、hover、toggle等示例介绍
2014/07/21 Javascript
JavaScript运行机制之事件循环(Event Loop)详解
2014/10/10 Javascript
JavaScript实现穷举排列(permutation)算法谜题解答
2014/12/29 Javascript
vue技术分享之你可能不知道的7个秘密
2018/04/09 Javascript
element el-input directive数字进行控制
2018/10/11 Javascript
elementUi vue el-radio 监听选中变化的实例代码
2019/06/28 Javascript
JavaScript实现缓动动画
2020/11/25 Javascript
[01:19:34]2014 DOTA2国际邀请赛中国区预选赛 New Element VS Dream time
2014/05/22 DOTA
[58:12]Ti4第二日主赛事败者组 LGD vs iG 3
2014/07/21 DOTA
[40:05]LGD vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
详解在Python程序中使用Cookie的教程
2015/04/30 Python
Python实现简单的四则运算计算器
2016/11/02 Python
Python快速查找list中相同部分的方法
2018/06/27 Python
python如何创建TCP服务端和客户端
2018/08/26 Python
Python 从列表中取值和取索引的方法
2018/12/25 Python
windows下安装Python虚拟环境virtualenvwrapper-win
2019/06/14 Python
详解如何通过H5(浏览器/WebView/其他)唤起本地app
2017/12/11 HTML / CSS
Soft Cotton捷克:来自爱琴海棉花的浴袍
2017/02/01 全球购物
Timberland法国官网:购买靴子、鞋子、衣服、夹克和配饰
2019/11/30 全球购物
毕业生动漫设计求职信
2013/10/11 职场文书
后勤工作职责
2013/12/22 职场文书
课改先进个人汇报材料
2014/01/26 职场文书
青年志愿者活动方案
2014/08/17 职场文书
2014年综治维稳工作总结
2014/11/17 职场文书
《游戏公平》教学反思
2016/02/20 职场文书
2016年优秀共青团员事迹材料
2016/02/25 职场文书
幼儿园教师辞职信
2019/06/21 职场文书
MySQL命令行操作时的编码问题详解
2021/04/14 MySQL
JavaScript模拟实现网易云轮播效果
2022/04/04 Javascript
mysql 子查询的使用
2022/04/28 MySQL