Python列表推导式,集合推导式,元组推导式

先定义一个列表a

a = [1, 2, 3, 4, 5, 6, 7, 8]
a = [1, 2, 3, 4, 5, 6, 7, 8]

# 列表推导
d = [i**2 for i in a]

#集合推导
e = {i**2 for i in a}

#元组推导
f = (i**2 for i in a)

print(type(d))

print(type(e))

print(type(f))
-------------------------
输出:
<class 'list'>
<class 'set'>
<class 'generator'>

前两个是列表和集合,这很正常,最后一个用的元组,却是生成器(Generator),这是因为元组是不可变的。
要怎么访问里面的元素呢?很简单:

a = [1, 2, 3, 4, 5, 6, 7, 8]
f = (i**2 for i in a)
for n in f:
    print(n)
print(type(f))
---------------------------------------------
输出:
1
4
9
16
25
36
49
64
<class 'generator'>

推导式还可以进行条件判断:(当a中的元素大于等于5时候才计算)

a = [1, 2, 3, 4, 5, 6, 7, 8]
d = [i**2 for i in a if i >=5]
print(d)
---------------------
输出:
[25, 36, 49, 64]

推导式第一个i**2,i的平方还可以用函数替代。(小提示:i的立方可以写成i***3)。当列表a中的元素大于等于6的时候,计算它的平方,否则计算它的立方:

a = [1, 2, 3, 4, 5, 6, 7, 8]
def conpute(x):
    if(x >= 6):
        return x**2
    return x**3
f = [conpute(i) for i in a]
print(f)
----------------------------------------
输出:
[1, 8, 27, 64, 125, 36, 49, 64]

将数字或者字符串放进列表中:

a = [1, 2, 3, 4, 5, 6, 7, 8]
def conpute(x):
    if(x >= 6):
        return x**2
    return x**3
d = (conpute(i) for i in a)
x = []
for n in d:
    x.append(n)
print(x)
---------------------------------------------------
输出:
[1, 8, 27, 64, 125, 36, 49, 64]
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值