如何使用列表推导式使嵌套列表中的第一项为 0?

How to use a list comprehension to make the first item in a nested list 0?

提问人:Jacob Mathew Keluthara 提问时间:9/19/2023 最后编辑:ChrisJacob Mathew Keluthara 更新时间:9/19/2023 访问量:50

问:

例如,如果我有一个列表,如下所示:

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

我需要它回来

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

我将如何通过列表理解来做到这一点?

我知道如何使用嵌套的 for 循环来做到这一点。 我试着做一些事情:

[[x * 0 for x in j[0]] for j in num_list]
python list-comprehension 嵌套列表

评论

0赞 quamrana 9/19/2023
请使用完整的错误回溯更新您的问题。
1赞 Chris 9/19/2023
想想你会如何对一个列表执行此操作,然后对每个列表执行此操作。

答:

2赞 richard 9/19/2023 #1
num_list = [[0] + i[1:] for i in num_list]

输出:

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

评论

0赞 richard 9/19/2023
但我可能只是使用 for 循环将索引 0 的值更改为 0,不知道为什么要强制理解。
0赞 Chris 9/19/2023
如果您可以修改原始列表,则 for 循环将是一个不错的选择。如果没有,你的恶魔方法效果更好。
0赞 Jacob Mathew Keluthara 9/19/2023
它适用于一门课,从技术上讲,我们还没有涵盖循环,我们不允许使用它们