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

如何用Python列表推导式使嵌套列表长度等于列表中奇数的数值

Python列表推导式问题解决

你当前代码的问题是内层列表推导式遍历了原列表x,所以每个嵌套列表都会生成10个True。要让嵌套列表长度等于对应的奇数,只需要把内层循环的遍历对象换成range(z)——range(z)会生成z个元素,刚好对应你需要的嵌套列表长度。

修改后的代码:

x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
e = [[True for _ in range(z)] for z in x if z % 2 != 0]

这里内层循环用_作为变量名是Python中的常规写法,因为我们不需要用到循环变量的具体值,只是需要循环z次来生成z个True。运行后得到的结果如下:

[[True], [True, True, True], [True, True, True, True, True], [True, True, True, True, True, True, True], [True, True, True, True, True, True, True, True, True]]

注:你预期结果里的第一个嵌套列表是空的,但原列表中的奇数是1、3、5、7、9,对应的嵌套列表长度分别是1、3、5、7、9,所以不会出现空列表。如果确实需要包含空列表,需要调整筛选条件(比如保留偶数0),但根据你描述的“原列表x中奇数对应的嵌套列表”,上面的结果是符合需求的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 03:45:54