猿问

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

我遇到了一个关于列表理解的问题。


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]?结果如何得到?


不负相思意
浏览 305回答 2
2回答

缥缈止盈

这个列表理解完全等同于:num2 = []for i in num1:&nbsp; &nbsp; if i == 10:&nbsp; &nbsp; &nbsp; &nbsp; num2.append(i**2)&nbsp; &nbsp; else:&nbsp; &nbsp; &nbsp; &nbsp; if i < 7:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; num2.append(i-5)&nbsp; &nbsp; &nbsp; &nbsp; else:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; num2.append(i+5)

aluckdog

读作:num2 = [i**2 if i == 10&nbsp; &nbsp; &nbsp; &nbsp; else i-5 if i < 7&nbsp; &nbsp; &nbsp; &nbsp; else i+5&nbsp; &nbsp; &nbsp; &nbsp; for i in num1]5不等于10,但小于7,所以产生5-5(即0)10 等于 10,所以它产生 10 ** 2(即 100)15 不等于 10,不等于 7,因此我们使用默认情况,所以它产生 15 + 5(即 20)
随时随地看视频慕课网APP

相关分类

Python
我要回答