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

Python新手求助:如何用列表推导式展平嵌套列表并实现条件逻辑

展平嵌套列表并应用条件逻辑的正确做法

嘿,作为Python新手遇到这个问题很正常,我来帮你理清楚!

你原来的代码:

nested_list = [[1,2,3], [4,5,6], [7,8,9]]
odds_evens = [['odd' if n % 2 != 0 else 'even' for n in l] for l in nested_list]

之所以返回嵌套列表,是因为你用了两层嵌套的列表推导式——外层遍历每个子列表l,然后内层为每个l生成一个新的子列表,最终结果自然还是嵌套结构。

要实现展平成一维列表的需求,只需要把两层循环合并到同一个列表推导式里,调整遍历顺序即可:

nested_list = [[1,2,3], [4,5,6], [7,8,9]]
odds_evens = ['odd' if n % 2 != 0 else 'even' for l in nested_list for n in l]

这个推导式的执行逻辑是:

  • 先遍历外层的每个子列表l(比如第一个[1,2,3])
  • 接着遍历当前子列表里的每个元素n(比如1、2、3)
  • 对每个n应用条件判断,直接将结果加入最终的一维列表

运行这段代码后,你会得到预期的展平结果:

['odd', 'even', 'odd', 'even', 'odd', 'even', 'odd', 'even', 'odd']

如果之后遇到更深层的嵌套列表(比如三层及以上),可以考虑结合递归或者itertools.chain工具,但针对你现在的两层嵌套场景,上面的列表推导式就足够简洁高效啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:02:59