详解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中的tuple元组详细介绍
Feb 02 Python
详解Python3中的Sequence type的使用
Aug 01 Python
python paramiko模块学习分享
Aug 23 Python
python中多层嵌套列表的拆分方法
Jul 02 Python
使用pip发布Python程序的方法步骤
Oct 11 Python
python 定义n个变量方法 (变量声明自动化)
Nov 10 Python
python使用pygame框架实现推箱子游戏
Nov 20 Python
python数据挖掘需要学的内容
Jun 23 Python
python读取并写入mat文件的方法
Jul 12 Python
Java多线程实现四种方式原理详解
Jun 02 Python
详解pandas获取Dataframe元素值的几种方法
Jun 14 Python
python3处理word文档实例分析
Dec 01 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
Laravel 数据库加密及数据库表前缀配置方法
2019/10/10 PHP
Extjs TriggerField在弹出窗口显示不出问题的解决方法
2010/01/08 Javascript
JS与框架页的操作代码
2010/01/17 Javascript
三种检测iPhone/iPad设备方向的方法
2014/04/23 Javascript
js取整数、取余数的方法
2014/05/11 Javascript
JS实现超简单的汉字转拼音功能示例
2016/12/22 Javascript
JS实现移动端实时监听输入框变化的实例代码
2017/04/12 Javascript
AngularJS学习笔记之表单验证功能实例详解
2017/07/06 Javascript
微信小程序实现自定义modal弹窗封装的方法
2018/06/15 Javascript
vue 修改 data 数据问题并实时显示的方法
2018/08/27 Javascript
vue简单封装axios插件和接口的统一管理操作示例
2020/02/02 Javascript
javascript实现图片轮换动作方法
2020/08/07 Javascript
python实现简单的计时器功能函数
2015/03/14 Python
Python 使用PIL中的resize进行缩放的实例讲解
2018/08/03 Python
python获取Linux发行版名称
2019/08/30 Python
使用Python实现 学生学籍管理系统
2019/11/26 Python
python实现名片管理器的示例代码
2019/12/17 Python
python搜索算法原理及实例讲解
2020/11/18 Python
详解HTML5.2版本带来的修改
2020/05/06 HTML / CSS
全球领先的中国制造商品在线批发平台:DHgate
2020/01/28 全球购物
银行实习自我鉴定
2013/10/12 职场文书
个人简历自我评价八例
2013/10/31 职场文书
小学校园活动策划
2014/01/30 职场文书
大学新学期计划书
2014/04/28 职场文书
横幅标语大全
2014/06/17 职场文书
实习护士自荐信
2014/06/21 职场文书
党支部党的群众路线对照检查材料
2014/09/24 职场文书
贵阳市党的群众路线教育实践活动党(工)委领导班子整改方案
2014/10/26 职场文书
信访维稳工作汇报
2014/10/27 职场文书
优秀班主任先进事迹材料
2014/12/16 职场文书
委托函范文
2015/01/29 职场文书
文艺演出主持词
2015/07/01 职场文书
2015重阳节座谈会主持词
2015/07/30 职场文书
大学宣传委员竞选稿
2015/11/19 职场文书
民事调解协议书
2016/03/21 职场文书
一篇文章学会Vue中间件管道
2021/06/20 Vue.js