详解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框架使用入门指引
Apr 15 Python
Python中字符串的格式化方法小结
May 03 Python
分析Python中解析构建数据知识
Jan 20 Python
Python3使用turtle绘制超立方体图形示例
Jun 19 Python
python使用PIL给图片添加文字生成海报示例
Aug 17 Python
10 行 Python 代码教你自动发送短信(不想回复工作邮件妙招)
Oct 11 Python
PyQt4编程之让状态栏显示信息的方法
Jun 18 Python
Python之虚拟环境virtualenv,pipreqs生成项目依赖第三方包的方法
Jul 23 Python
使用tensorflow实现矩阵分解方式
Feb 07 Python
Pycharm学生免费专业版安装教程的方法步骤
Sep 24 Python
python实现监听键盘
Apr 26 Python
Python爬虫之自动爬取某车之家各车销售数据
Jun 02 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/10 PHP
PHP读取CURL模拟登录时生成Cookie文件的方法
2014/11/04 PHP
CodeIgniter基于Email类发邮件的方法
2016/03/29 PHP
PHP简单实现上一页下一页功能示例
2016/09/14 PHP
PHP仿微信发红包领红包效果
2016/10/30 PHP
详解PHP中的序列化、反序列化操作
2017/03/21 PHP
Jquery作者John Resig自己封装的javascript 常用函数
2009/11/09 Javascript
jQuery EasyUI API 中文文档 - Menu菜单
2011/10/03 Javascript
jQuery插件bxSlider实现响应式焦点图
2015/04/12 Javascript
基于javascript实现动态显示当前系统时间
2016/01/28 Javascript
bootstrap模态框跳转到当前模板页面 框消失了而背景存在问题的解决方法
2020/11/30 Javascript
gulp解决跨域的配置文件问题
2017/06/08 Javascript
vue 兄弟组件的信息传递的方法实例详解
2019/08/30 Javascript
vue 图片裁剪上传组件的实现
2020/11/12 Javascript
python 将字符串转换成字典dict
2013/03/24 Python
Python解决鸡兔同笼问题的方法
2014/12/20 Python
Django 路由系统URLconf的使用
2018/10/11 Python
pyqt5 实现 下拉菜单 + 打开文件的示例代码
2019/06/20 Python
Python自动生成代码 使用tkinter图形化操作并生成代码框架
2019/09/18 Python
基于python实现学生信息管理系统
2019/11/22 Python
解决torch.autograd.backward中的参数问题
2020/01/07 Python
python如何查看安装了的模块
2020/06/23 Python
Django中和时区相关的安全问题详解
2020/10/12 Python
CSS3让登陆面板3D旋转起来
2016/05/03 HTML / CSS
使用html5 canvas 画时钟代码实例分享
2015/11/11 HTML / CSS
Html5 canvas实现粒子时钟的示例代码
2018/09/06 HTML / CSS
澳大利亚第一旅行车和房车配件店:Caravan RV Camping
2020/12/26 全球购物
求职简历自荐信
2013/10/20 职场文书
2014年三八妇女节活动方案
2014/02/28 职场文书
村长反四风问题个人对照检查材料
2014/09/21 职场文书
收款授权委托书
2014/10/02 职场文书
给老婆的检讨书(搞笑版)
2015/05/06 职场文书
小学运动会前导词
2015/07/20 职场文书
Python的三个重要函数详解
2022/01/18 Python
MySQL提取JSON字段数据实现查询
2022/04/22 MySQL
Mysql索引失效 数据库表中有索引还是查询很慢
2022/05/15 MySQL