python教程(九)之特性(4.列表生成器)

#本来这里应该讲生成器与迭代器,但为了更好地理解之后的内容,在这里先说一下列表生成器
#还记得第五章第八节简单推导的内容吗

print(
    [x*x for x in range(10) if not x%3==0]
)
#[1, 4, 16, 25, 49, 64]

#列表生成器可以快速生成一个经过算法处理过的列表
#并且这个循环可以是多层的

print(
    [a+b for a in "ABC" for b in "123"]
)
#['A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3']

#循环层数没有上限,但一般不会超过三层
#面对字典时也是这样

y={"bob":"friend","lily":"unknow","hermione":"girlfriend"}
print(
    [c+":"+d for c,d in y.items()]
)
#['bob:friend', 'lily:unknow', 'hermione:girlfriend']

#再来一个if else的例子,在列表生成器和推导中都可以使用
#但要注意,对for来说,if else需要在前面,否则会报错

print(
    [z*z if z%3==0 else -z*z for z in range(10)]
)
#[0, -1, -4, 9, -16, -25, 36, -49, -64, 81]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值