列表推导式

列表推导式把原本较为复杂的代码尽可能的简单化

举俩个例子:
1.此处我们将列表里的数字都乘3

vec1 = [2,4,6]
a = [3*x for x in vec1]
print(a)
# 结果:[6, 12, 18]

2.当然也可以将返回的结果放在一个新的列表中,返回的结果可以用变量或者多个变量来接受

vec2 = [3,6,9]
b = [x,3*x for x in vec2]
print(b)
# 结果:[[3, 9], [6, 18], [9, 27]]

简单理解:

列表推导式提供了从序列创建列表的简单途径,每个列表推导式都在for后面更一个表达式,然后有零到多个for或if子句(if语句其过滤作用,下面代码会有说明),而返回的结果for和if环境生成出来的列表。同样如果想要推导出一个元组,就必须得使用括号。

实例:

freshfruit = ['  banana', '  loganberry ', 'passion fruit  ']
fruit = [weapon.strip() for weapon in freshfruit]
print(fruit)
# 结果:['banana', 'loganberry', 'passion fruit']

下面我们用if子句作为过滤器

vec3 = [2,4,5]
d = [3*x for x in vec3 if x > 3]
print(d)
# 结果:[12,15]
vec4 = [1,3,6]
e = [3*x for x in vec4 if x <2]
print(e)
# 结果:[3]

以下是一些关于循环的技巧

vec1 = [2, 4, 6]
vec2 = [4, 3, -9]
print([vec1[i]*vec2[i] for i in range(len(vec1))])
# 结果: [8, 12, -54]
print([x*y for x in vec1 for y in vec2])
# 结果:[8, 6, -18, 16, 12, -36, 24, 18, -54]
print([x+y for x in vec1 for y in vec2])
# 结果:[6, 5, -7, 8, 7, -5, 10, 9, -3]
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值