点击蓝字
关注我们
我们已经学习过列表,它是python最常用的数据结构之一,列表通常用一对方括号括起来,方括号内各元素用逗号隔开。今天学习列表的另一种创建方式--列表推导式。
列表推导式对序列或可迭代对象中的每个元素应用某种操作,用生成的结果创建新的列表,比如:
a=[]for i in range(10):a.append(i**2)print(a)
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
这个程序段的功能是将0~9各个数的平方值存入列表中,如果用列表推导式实现这个功能,可写成:
a=[i**2 for i in range(10)]
上面3行代码实现的功能,列表推导式1行就能解决。我们看到赋值符号右边仍然有一个方括号,括号内通过变量 i 获取可迭代对象range(10)中的每一个数,再用表达式 i**2计算每一个数的平方值并存入列表中。
列表推导式方括号内for循环的后面还可以添加if子句。
b=[i for i in range(50) if i%7==0]
这行代码的功能是将0~49区间范围内能被7整除的数存入列表b中。
列表推导式方括号内for循环的后面还可以添加for子句,比如:
c=[(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]print(c)
[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
这个列表推导式分别遍历[1,2,3]和[3,1,4]两个列表,从每个列表中各取一个数,若这两个数不等则构成一个元组,所有元组构成一个列表,它等价于:
c=[]for x in [1,2,3]:for y in [3,1,4]:if x!=y:c.append((x,y))print(c)
可见,列表推导式是一种高效创建列表的方法,它可以简化代码,使程序更加简洁,更具可读性。
文章转载自AI小白笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




