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

如何使用列表推导式将嵌套列表的首个元素设为0?

问题:如何用列表推导式修改嵌套列表的首个元素为0?

原始嵌套列表:

num_list = [
    [1234, 1244123, 453242], 
    [123123, 78421, 76433], 
    [46345, 578542, 47463]
]

想要转换为:

[
    [0, 1244123, 453242], 
    [0, 78421, 76433], 
    [0, 578542, 47463]
]

你之前尝试的代码[[x * 0 for x in j[0]] for j in num_list]存在问题:j[0]是单个数字,遍历它会把数字拆成单个字符(比如1234会被拆成'1','2','3','4'),最终生成的是[[0,0,0,0], ...]这类不符合需求的结构。

这里提供两种正确的列表推导式写法:

方法一:切片拼接(简洁高效)

result = [[0] + sublist[1:] for sublist in num_list]

直接用[0]替换每个子列表的首个元素,再拼接上原列表从索引1开始的剩余部分,无需遍历子列表所有元素。

方法二:索引判断(灵活通用)

result = [[0 if idx == 0 else num for idx, num in enumerate(sublist)] for sublist in num_list]

通过enumerate获取子列表中每个元素的索引和值,当索引为0时替换成0,其余情况保留原数值。

内容的提问来源于stack exchange,提问作者Jacob Mathew Keluthara

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 15:47:02