gpt4 book ai didi

Python:迭代具有不同维数的列表,有通用的方法吗?

转载 作者:太空狗 更新时间:2023-10-29 18:16:11 25 4
gpt4 key购买 nike

# 2x3 dimensional list
multidim_list = [
[1,2,3],
[4,5,6],
]
# 2x3x2 dimensional list
multidim_list2 = [
[
[1,2,3],
[4,5,6],
],
[
[7,8,9],
[10,11,12],
]
]

def multiply_list(list):
...

我想实现一个函数,它将列表中的所有元素乘以二。但是我的问题是列表可以有不同数量的维度。

是否有一种通用的方法来循环/迭代多维列表,例如将每个值乘以二?

编辑1: 感谢您的快速回答。 对于这种情况,我不想使用 numpy。 递归看起来不错,甚至不需要复制列表,实际上列表可能非常大。

最佳答案

递归是你的 friend :

from collections import MutableSequence
def multiply(list_):
for index, item in enumerate(list_):
if isinstance(item, MutableSequence):
multiply(item)
else:
list_[index] *= 2

您可以只执行 isinstance(item, list) 而不是 isinstance(item, MutableSequence),但后一种方法更适合 future 和通用。参见 the glossary以获得简短的解释。

关于Python:迭代具有不同维数的列表,有通用的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10271981/

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