如何用Python单列表推导式实现数值条件调整(无需函数)
单列表推导式实现数值调整需求
原始列表示例
original_list = [20,10,15,56,80,200,47,12, 4,70,...]
需求说明
将列表中小于50的数值提高20%,其余数值保持不变,且维持原列表顺序,能否仅通过单列表推导式实现?
你尝试的错误写法
revised_list =[x*1.2 for x in original_list if x < 50 else y for y in original_list]
正确解法
你的写法逻辑混乱,嵌套了两次列表遍历,导致元素重复且逻辑关联错误。正确的单列表推导式写法如下:
revised_list = [x * 1.2 if x < 50 else x for x in original_list]
逻辑说明
这个推导式会逐个遍历original_list中的每个元素x:
- 当
x < 50时,计算x * 1.2作为新元素 - 否则直接保留原元素
x
完全满足需求,既没有使用额外函数,也维持了原列表的顺序。
内容的提问来源于stack exchange,提问作者Leo Sam
相关产品推荐
相关产品推荐

