首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Python中进行列表的创建?

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

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

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 元组的不可变性带来的优点

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

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

青年学记 陪伴着各位青年

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

一起学习 一起进步

走向自立

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191027A0IAI500?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券