Python:如何使列表零列表中的列表值

时间:2018-09-15 00:47:31

标签: python-2.7 list

我想将名为“ child_Before”的列表列表中的第一个列表中的所有值都设置为零以下。在列表之后,下面还显示了我为完成此任务而编写的代码:

child_Before = [[9, 12, 7, 3, 13, 14, 10, 5, 4, 11, 8, 6, 2],
            [1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1],
            [[1, 0], [1, 1]]]

    for elem in range(len(child_Before[0])):
        child_Before[0][elem] = 0

以下是预期结果:

 child_After = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
                [1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1],
                [[1, 0], [1, 1]]]

但是,我认为应该有一种更轻松的方法来完成此练习。因此,欢迎您的帮助。预先谢谢你。

2 个答案:

答案 0 :(得分:0)

只需创建一个[0]列表,其长度与原始列表相同。

# Answer to this question - make first list in the list to be all 0
child_Before[0] = [0] * len(child_Before[0])

关于您的回答,我可以对其进行更正以使该列表的列表中的所有元素均为零。

# Make all elements 0
for child in range(len(child_Before)):
    child_Before[child] = [0] * len(child_Before[child])

答案 1 :(得分:0)

使用列表理解:

child_after = [[i if n != 0 else 0 for i in j] for n, j in enumerate(child_Before)]