You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何用列表推导式拆分正负数值列表为两个新列表?

解决方法

你完全可以用列表推导式实现,两行代码就能搞定:

假设原列表叫original_list,示例如下:

original_list = [3, -2, 5, -7, 0, 12, -4]  # 示例列表,实际为96个元素

生成第一个列表(保留正数,原负数/0位置替换为0):

positive_list = [x if x > 0 else 0 for x in original_list]

生成第二个列表(保留负数,原正数/0位置替换为0):

negative_list = [x if x < 0 else 0 for x in original_list]

逻辑解释

  • 列表推导式的核心逻辑是遍历原列表的每个元素x,通过条件判断返回对应值:
    • 对于positive_list,仅当x为正数(x > 0)时保留原数值,其余情况返回0;
    • 对于negative_list,仅当x为负数(x < 0)时保留原数值,其余情况返回0;
  • 若原列表包含0,两个新列表的对应位置都会是0,完全符合需求。

测试示例代码的输出结果:

print(positive_list)  # 输出: [3, 0, 5, 0, 0, 12, 0]
print(negative_list)  # 输出: [0, -2, 0, -7, 0, 0, -4]

这种写法简洁高效,能适配任意长度的列表,包括你说的96个元素的场景。

内容的提问来源于stack exchange,提问作者Handballer73

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 03:40:22