学习
实践
活动
工具
TVP
写文章

Python之列表解析、生成器

列表(list)是python标准数据类型之一,使用列表操作数据就显得极其重要了。

我们先看一个例子

列表解析

a = [x for x in range(10)],

我们可以理解为,当x在range(10)里时,a.append(x)。

用代码描述:

源码,供大家实验

a = [] # 定义一个空列表

def num():

for i in range(10): # for循环取出range(10)中的值

a.append(i) # 将刚取出的值加入到a中

print(a) # 打印a的值

num() # 调用函数

当然,我们还可以用列表去做一些更加复杂的的事,比如,

本来需要很多行代码的事,一行就搞定了。

不过,这样做也可能有拖慢程序的整体速度,因为a = [x for x in range(10)]语句是一次生成所有的列表元素,将其放入内存中待用,这就导致了资源的浪费。比如我们使用a =[ x for x in range(100000000)],那么就会生成一亿个数,多数计算机是有压力的(大家可以自己试一试)。

这时我们就需要用到生成器了,直接返回一个可迭代对象。例如:

生成器

大家可以看见,a不在是是list类型了,而是一个可迭代对象,瞬间完成。

next迭代

每迭代一次,就生成一个数。除了next,大家也可以用for迭代取出对象a的值。

如果还有不明白的小伙伴,欢迎留言评论或私信告诉我。

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

扫码关注腾讯云开发者

领取腾讯云代金券