详解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求pi的方法
Oct 08 Python
Python的面向对象编程方式学习笔记
Jul 12 Python
在Python中使用gRPC的方法示例
Aug 08 Python
Python3实现的简单三级菜单功能示例
Mar 12 Python
python实现一个函数版的名片管理系统过程解析
Aug 27 Python
Python基本类型的连接组合和互相转换方式(13种)
Dec 16 Python
windows下Pycharm安装opencv的多种方法
Mar 05 Python
Python 读取xml数据,cv2裁剪图片实例
Mar 10 Python
pycharm下pyqt4安装及环境配置的教程
Apr 24 Python
Python 爬虫性能相关总结
Aug 03 Python
分享一枚pycharm激活码适用所有pycharm版本我的pycharm2020.2.3激活成功
Nov 20 Python
解决virtualenv -p python3 venv报错的问题
Feb 05 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/06/25 PHP
php curl模拟post请求小实例
2013/11/13 PHP
如何实现php图片等比例缩放
2015/07/28 PHP
PHP asXML()函数讲解
2019/02/03 PHP
ThinkPHP3.2框架自带分页功能实现方法示例
2019/05/13 PHP
laravel框架中控制器的创建和使用方法分析
2019/11/23 PHP
jquery对元素拖动排序示例
2014/01/16 Javascript
jQuery实现向下滑出的二级菜单效果实例
2015/08/22 Javascript
深入浅析JS的数组遍历方法(推荐)
2016/06/15 Javascript
在html中引入外部js文件,并调用带参函数的方法
2016/10/31 Javascript
vue-resource 拦截器使用详解
2017/02/21 Javascript
js实现鼠标跟随运动效果
2020/08/02 Javascript
vue注册组件的几种方式总结
2018/03/08 Javascript
vue如何通过id从列表页跳转到对应的详情页
2018/05/01 Javascript
详解vue-cli官方脚手架配置
2018/07/20 Javascript
ajax与jsonp的区别及用法
2018/10/16 Javascript
深入浅析Vue 中 ref 的使用
2019/04/29 Javascript
Vue 动态组件components和v-once指令的实现
2019/08/30 Javascript
python对url格式解析的方法
2015/05/13 Python
简单的Apache+FastCGI+Django配置指南
2015/07/22 Python
Python复制Word内容并使用格式设字体与大小实例代码
2018/01/22 Python
实例讲解Python3中abs()函数
2019/02/19 Python
Python使用pandas和xlsxwriter读写xlsx文件的方法示例
2019/04/09 Python
python爬虫 批量下载zabbix文档代码实例
2019/08/21 Python
学习Django知识点分享
2019/09/11 Python
Python socket模块ftp传输文件过程解析
2019/11/05 Python
如何利用python之wxpy模块玩转微信
2020/08/17 Python
html5标记文字_动力节点Java学院整理
2017/07/11 HTML / CSS
西尔斯百货官网:Sears
2016/09/06 全球购物
ALDO加拿大官网:加拿大女鞋品牌
2018/12/22 全球购物
美国便宜的横幅和标志印刷在线:Best of Signs
2019/05/29 全球购物
编码实现字符串转整型的函数
2012/06/02 面试题
房租涨价通知
2015/04/23 职场文书
Python基础学习之奇异的GUI对话框
2021/05/27 Python
MySQL中IO问题的深入分析与优化
2022/04/02 MySQL
《勇者辞职不干了》上卷BD发售宣传CM公开
2022/04/08 日漫