我遇到了一个关于列表理解的问题。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)
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)
添加回答
举报
0/150
提交
取消