gpt4 book ai didi

python - 如何遍历嵌套列表的一部分?

转载 作者:太空宇宙 更新时间:2023-11-04 09:51:16 25 4
gpt4 key购买 nike

我有这个嵌套列表:

nested = [[1, 1, 1], [2, 2, 2], [3, 3, 3]]

我想从内部列表的前 2 个元素中减去 1,所以我尝试了列表理解:

nested = [[x - 1 for x in stack[0:2]] for stack in nested]

它确实返回了内部列表的前 2 个元素减 1,但它完全删除了最后一个元素

nested = [[0, 0], [1, 1], [2, 2]]

我以为通过切片列表,它不会影响其他元素。但是在这种情况下它不起作用。谁能给我解释一下?

最佳答案

要保留第 3 个元素,请将其包含在列表理解中:

>>> [ [x - 1 for x in stack[0:2]] + stack[2:] for stack in nested ]
[[0, 0, 1], [1, 1, 2], [2, 2, 3]]

以上适用于任何长度的 stack

或者,如果堆栈总是恰好包含三个元素:

>>> [[x-1, y-1, z] for x, y, z in nested]
[[0, 0, 1], [1, 1, 2], [2, 2, 3]]

或者,您可以就地进行更改:

>>> for stack in nested: stack[0]-=1; stack[1]-=1
...
>>> nested
[[0, 0, 1], [1, 1, 2], [2, 2, 3]]

关于python - 如何遍历嵌套列表的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47724289/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com