详解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的Django框架中的缓存控制
Jul 24 Python
如何在Python函数执行前后增加额外的行为
Oct 20 Python
python的多重继承的理解
Aug 06 Python
Python 多进程和数据传递的理解
Oct 09 Python
python数据抓取分析的示例代码(python + mongodb)
Dec 25 Python
对Python subprocess.Popen子进程管道阻塞详解
Oct 29 Python
在IPython中执行Python程序文件的示例
Nov 01 Python
详解Python读取yaml文件多层菜单
Mar 23 Python
用Python获取摄像头并实时控制人脸的实现示例
Jul 11 Python
布隆过滤器的概述及Python实现方法
Dec 08 Python
Python用5行代码实现批量抠图的示例代码
Apr 14 Python
Pycharm2020.1安装中文语言插件的详细教程(不需要汉化)
Aug 07 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 删除记录实现代码
2009/03/12 PHP
php实现的常见排序算法汇总
2014/09/08 PHP
php实现的Timer页面运行时间监测类
2014/09/24 PHP
PHP Web木马扫描器代码分享
2015/09/06 PHP
PHP单文件上传原理及上传函数的封装操作示例
2019/09/02 PHP
单独使用CKFinder选择图片的方法
2010/08/21 Javascript
转义字符(\)对JavaScript中JSON.parse的影响概述
2013/07/17 Javascript
清除div下面的所有标签的方法
2014/02/17 Javascript
js对象基础实例分析
2015/01/13 Javascript
探析浏览器执行JavaScript脚本加载与代码执行顺序
2016/01/12 Javascript
jQuery siblings()用法实例详解
2016/04/26 Javascript
js阻止移动端页面滚动的两种方法
2017/01/25 Javascript
简单实现bootstrap导航效果
2017/02/07 Javascript
基于JavaScript实现轮播图原理及示例
2020/04/10 Javascript
微信小程序 Buffer缓冲区的详解
2017/07/06 Javascript
vue params、query传参使用详解
2017/09/12 Javascript
javascript基于牛顿迭代法实现求浮点数的平方根【递归原理】
2017/09/28 Javascript
vue mintui-Loadmore结合实现下拉刷新和上拉加载示例
2017/10/12 Javascript
vue的diff算法知识点总结
2018/03/29 Javascript
javascript匿名函数中的'return function()'作用
2018/10/15 Javascript
Js实现复选框的全选、全不选反选功能代码实例
2020/02/28 Javascript
Python Queue模块详解
2014/11/30 Python
python常用函数详解
2016/09/13 Python
CentOS下使用yum安装python-pip失败的完美解决方法
2017/08/16 Python
运用TensorFlow进行简单实现线性回归、梯度下降示例
2018/03/05 Python
利用Python读取txt文档的方法讲解
2018/06/23 Python
python图形界面开发之wxPython树控件使用方法详解
2020/02/24 Python
使用Python实现将多表分批次从数据库导出到Excel
2020/05/15 Python
keras读取训练好的模型参数并把参数赋值给其它模型详解
2020/06/15 Python
python 简单的调用有道翻译
2020/11/25 Python
2014年个人债务授权委托书范本
2014/09/22 职场文书
个人查摆问题及整改措施
2014/10/16 职场文书
安全保证书格式
2015/02/28 职场文书
地球上的星星观后感
2015/06/02 职场文书
幼儿园开学报名通知
2015/07/16 职场文书
合作意向书怎么写
2019/06/24 职场文书