学记在这两天将自己产生的知识漏洞给打了个补丁,之前写出的文章可能会有一些纰漏,在这里,学记对大家说一声抱歉了。

今天学记就把这两天找出的纰漏,全部都写出来,供大家参考,为大家下一步的学习做好铺垫

1使用列表的生成式语法来创建列表

在这一个漏洞里,我们来重新把这一段的知识来进行补足。

创建列表不仅可以将列表按照原始的方法一个一个将值输入,也可以用生成式语法来创建。

比方说像下面这一段代码

f = [x for x in range(1, 10)]

这一行代码的输出结果是创建了一个列表f

f中有从1到9 的九个数字

也就是将变量 X 列举了出来

这一行代码也可以说明如何创建列表

f = [x + y for x in 'AB' for y in '123']

它的输出结果是

['A1', 'A2', 'A3', 'B1', 'B2', 'B3']

两个变量的列表创建就是将前一个变量按照 A B来取值,后一个变量按照 1 2 3 来取值结合起来,组合排列。

按照这种方法来创建列表,因为它们的元素已经列举出来了,所以这种创建方式在元素数量众多的情况下,是需要耗费较多的内存空间。

那么有没有一种函数可以在占据较少的内存空间情况下,也可以提供元素呢?

答案是有的。

这里我们引入一个新的概念:生成器

何为生成器?

生成器是一个一边循环,一边计算的函数机制,英文为:Generator.

它可以在你需要的时候通过特殊的算法来进行提取所需的元素,而它又不需要把所有的元素都列举出来,所以节省了巨大的空间。

它的创建方法有很多种,今天我们先了解最简单的一种,创建方法与上面的代码类似,就是把符号换了,把 [] 换成了 ()

代码如下:

f = (x ** 2 for x in range(1, 1000))

这样就创建了一个生成器

其中的元素可以用next()for in 来进行提取

比如 next(g) 和 for n in g

这两种都可以提取生成器中的元素。

2 元组的不可变性带来的优点

元组内的元素是不可变的,它自创建开始到删除都是不能变的,因此在一些任务处理中,比如大量数据的归总,分门别类,有些固定的字眼就可以用元组来处理,减轻了数据处理的压力,给程序的维护性带来了很大的益处。

况且,因为元组的元素是不可变的,创建同样元素的元组和列表,元组所占的内存空间和响应速度要大大优于列表。

青年学记 陪伴着各位青年

作者:青年学记 一名不断进步的程序猿

一起学习 一起进步

走向自立

python创建float型的列表_如何在Python中进行列表的创建?相关推荐

  1. pythonfor循环列表_如何在Python中通过for循环传递列表列表?

    我有一份清单:sample = [['TTTT', 'CCCZ'], ['ATTA', 'CZZC']] count = [[4,3],[4,2]] correctionfactor = [[1.33 ...

  2. python中用什么函数读取字符串_如何在Python中获得函数名作为字符串?

    在Python中,如何在不调用函数的情况下以字符串的形式获得函数名? 1 2 3 4def my_function(): pass print get_function_name_as_string( ...

  3. python set 排序_python set 排序_如何在Python中使用sorted()和sort()

    点击"蓝字"关注我们 ?"Python基础知识" 大卫·丰达科夫斯基  著 18财税3班 李潇潇    译 日期:2019年5月6日 一. 使用sorted() ...

  4. java swing 列表框_如何在Swing中使用列表框?

    下面的示例展示了如何在Java Swing应用程序中使用标准列表框. 使用以下API - JList - 创建标准列表. JList.setSelectedIndex(index); - 选择项目. ...

  5. python如何用c语言表示_如何在python中调用C语言代码

    原博文 2019-04-03 14:19 − 1.使用C扩展CPython还为开发者实现了一个有趣的特性,使用Python可以轻松调用C代码 开发者有三种方法可以在自己的Python代码中来调用C编写 ...

  6. razor页面跳转_如何在Blazor中使用Razor页面创建单页应用程序

    razor页面跳转 In this article, we are going to create a Single Page Application (SPA) using Razor pages ...

  7. java 合并两个列表_如何在Java中合并两个列表?

    java 合并两个列表 Merging two lists in Java is often a useful operation. These lists can be ArrayLists or ...

  8. python一行输出多个数据_如何在Python中让两个print()函数的输出打印在一行内?

    1.两个连续的print()函数为什么在输出时内容会分行显示? 解:print()中有两个默认参数sep和end,其中sep是代替分隔符,end是代替末尾的换行符,默认使用','代替空格,且默认末尾加 ...

  9. python如何定义一个空变量_如何在python中定义自由变量? - python

    python doc中的本地/全局/自由变量定义: 如果名称绑定在块中,则除非声明为非本地,否则它是该块的局部变量.如果在模块级别绑定了名称,则该名称为全局变量. (模块代码块的变量是局部变量和全局变 ...

  10. scala 空列表_如何在Scala中展平列表列表?

    scala 空列表 Flattening of List is converting a list of multiple List into a single List. To flatten Li ...

最新文章

  1. 负二项分布学习[转载]
  2. Hibernate的数据查找,添加!
  3. fckeditor编辑器上传文件出现invalid Request问题解决
  4. 常用WebService一览表
  5. 编译原理【实验1——扫描器的设计与实现】
  6. ModuleNotFoundError: No module named 'oscar.app'
  7. 中移动12580领跑世界杯商旅营销
  8. 梯度的直观理解_BP反向传播算法的思考和直观理解 -卷积小白的随机世界
  9. 如何监控主从故障是否正常?MySQL数据库
  10. 老罗的个人网站创建备忘
  11. 毕设题目:Matlab图像重建
  12. spwm matlab仿真,H桥逆变器SPWMMATLAB仿真
  13. 虚拟机opnsense作为dhcp服务器,ESXI 与 OPNSense 配合
  14. 什么是BI工具,好用的BI工具软件排名
  15. 添加打印机其它计算机打不开,windows无法打开添加打印机的解决方法
  16. HDP 之 Timeline Service 2.0
  17. 摄影师用AI预测MJ、李小龙活到现在长什么样,网友看后泪目
  18. 微信小程序手把手入门教程
  19. 要学完Java大概需要多长时间
  20. ORCALE DDL,DML,DQL命令

热门文章

  1. URL重写后,在有页面回发时的处理
  2. 我的世界1.7.10java下载安装_我的世界1.7.10正式版
  3. java通过异常处理错误_java 通过异常处理错误
  4. 横向循环焦点图片展示_多光子显微镜成像技术之十二:多光子显微镜中的焦点深度扩展方法...
  5. 服务器子系统是什么,服务器是什么样子的,服务器一般用什么系统!
  6. rsviwe32 7.6 授权_「复杂系统迁移 .NET Core平台系列」之认证和授权
  7. mysql mpm_zabbix mpm 监控 mysql性能
  8. 计算机二级html真题,计算机二级《Web程序设计》试题及答案
  9. MATLAB不定积分的运算,matlab中怎么把积分函数 int 得到的不定积分式代入 solve 函数中进行计算?...
  10. hibernate mysql id 自增长 注解_hibernate Mysql 自增长 注解配置,表无关联的注解方式关联查询...