详解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实现从web抓取文档的方法
Sep 26 Python
Django中几种重定向方法
Apr 28 Python
python实现判断数组是否包含指定元素的方法
Jul 15 Python
Python中的数学运算操作符使用进阶
Jun 20 Python
对python numpy数组中冒号的使用方法详解
Apr 17 Python
Python实现拷贝/删除文件夹的方法详解
Aug 29 Python
python实现微信小程序用户登录、模板推送
Aug 28 Python
Python面向对象程序设计之私有变量,私有方法原理与用法分析
Mar 23 Python
套娃式文件夹如何通过Python批量处理
Aug 23 Python
Python3.9.0 a1安装pygame出错解决全过程(小结)
Feb 02 Python
Python字符串对齐方法使用(ljust()、rjust()和center())
Apr 26 Python
用python开发一款操作MySQL的小工具
May 12 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之规范编程命名小结
2013/05/15 PHP
从javascript语言本身谈项目实战
2006/12/27 Javascript
js精度溢出解决方案
2012/12/02 Javascript
window.print打印指定div实例代码
2013/12/13 Javascript
JavaScript立即执行函数的三种不同写法
2014/09/05 Javascript
IE中鼠标经过option触发mouseout的解决方法
2015/01/29 Javascript
jquery实现公告翻滚效果
2015/02/27 Javascript
完美解决手机网页中输入框被输入法遮挡的问题
2017/12/19 Javascript
vue中改变选中当前项的显示隐藏或者状态的实现方法
2018/02/08 Javascript
jQuery仿移动端支付宝键盘的实现代码
2018/08/15 jQuery
Vue.js实现表格渲染的方法
2018/09/07 Javascript
jQuery操作attr、prop、val()/text()/html()、class属性
2019/05/23 jQuery
详解vue 动态加载并注册组件且通过 render动态创建该组件
2019/05/30 Javascript
JavaScript遍历数组和对象的元素简单操作示例
2019/07/09 Javascript
vue遍历对象中的数组取值示例
2019/11/07 Javascript
Python 开发Activex组件方法
2009/11/08 Python
Python内置的字符串处理函数整理
2013/01/29 Python
Google开源的Python格式化工具YAPF的安装和使用教程
2016/05/31 Python
Python使用正则表达式实现文本替换的方法
2017/04/18 Python
python实现zabbix发送短信脚本
2018/09/17 Python
pandas删除行删除列增加行增加列的实现
2019/07/06 Python
django序列化serializers过程解析
2019/12/14 Python
django 多数据库及分库实现方式
2020/04/01 Python
CSS实现圆形放大镜狙击镜效果 只有圆圈里的放大
2012/12/10 HTML / CSS
网络体系结构及协议的定义
2014/03/13 面试题
模具专业毕业生自荐书范文
2014/02/19 职场文书
汇源肾宝广告词
2014/03/20 职场文书
四年级评语大全
2014/04/21 职场文书
学校党的群众路线教育实践活动整改措施
2014/10/25 职场文书
2014年教务工作总结
2014/12/03 职场文书
坎儿井导游词
2015/02/09 职场文书
2015年世界无车日活动总结
2015/03/23 职场文书
学校中秋节活动总结
2015/03/23 职场文书
毕业生登记表班级意见
2015/06/05 职场文书
神州牡丹园的导游词
2019/11/20 职场文书
python控制台打印log输出重复的解决方法
2021/05/14 Python