如何将Python多条件逻辑方法改写为单行返回语句?
解决方案
利用列表推导式嵌套三元表达式,可将逻辑压缩为单行返回语句,同时修正原代码的错误:
def falsify(leftover): return [num - 10 if 30 > num >= 20 else ('1' + str(num)[1:] if num >= 30 else num) for num in leftover]
逻辑解析:
- 外层通过列表推导式遍历
leftover中的每个元素num - 第一层三元判断:若
30 > num >= 20,返回num - 10 - 不满足时进入第二层三元判断:若
num >= 30,将num转为字符串后截取索引1开始的部分,拼接前缀'1';否则直接返回原num
测试验证:
leftover1 = [19.7, 20.0, 28.5, 30.0, 30.7] print('result', falsify(leftover1))
输出结果与示例完全一致:
result [19.7, 10.0, 18.5, '10.0', '10.7']
内容的提问来源于stack exchange,提问作者Banana Tech
相关产品推荐
相关产品推荐

