为了账号安全,请及时绑定邮箱和手机立即绑定

num2=[0,100,20] 的结果如何得到?

num2=[0,100,20] 的结果如何得到?

不负相思意 2021-12-09 15:24:56
我遇到了一个关于列表理解的问题。num1 = [5,10,15]num2 = [i**2 if i == 10 else i-5 if i < 7 else i+5 for i in num1]为什么num2是num2 = [0,100,20]?结果如何得到?
查看完整描述

2 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

这个列表理解完全等同于:


num2 = []

for i in num1:

    if i == 10:

        num2.append(i**2)

    else:

        if i < 7:

            num2.append(i-5)

        else:

            num2.append(i+5)


查看完整回答
反对 回复 2021-12-09
?
aluckdog

TA贡献1847条经验 获得超7个赞

读作:


num2 = [i**2 if i == 10

        else i-5 if i < 7

        else i+5


        for i in num1]

5不等于10,但小于7,所以产生5-5(即0)

10 等于 10,所以它产生 10 ** 2(即 100)

15 不等于 10,不等于 7,因此我们使用默认情况,所以它产生 15 + 5(即 20)


查看完整回答
反对 回复 2021-12-09
  • 2 回答
  • 0 关注
  • 303 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信