gpt4 book ai didi

python - 如何递归修改深层嵌套列表的每个值并返回另一个类似的列表?

转载 作者:行者123 更新时间:2023-11-30 23:05:22 26 4
gpt4 key购买 nike

我想要一个嵌套列表

[[[1,2],[4,5]], 1, [1,3,4],[2,3,4]]

递归地进入那里,修改每个值,然后返回一个类似的列表。例如,假设我想将输出的每个值加 1

[[[2,3],[5,6]], 2, [2,4,5],[3,4,5]]

我在制作递归函数方面取得了一些进展,在该函数中我测试它是列表还是要修改的元素。当谈到如何再次编译列表时,我很困惑。难道没有一个简单的方法可以做到这一点吗?以下代码是我到目前为止所拥有的。

def add1(nodelist):
list_of_lists = []
name_nodes.nodes = []
def recurse_list(nodelist):
name_nodes.nodes = []
edit_list = False
for r in nodelist:
if type(r) == list:
recurse_list(r)
else:
edit_list = True
name_nodes.nodes.append(r+1)
if edit_list == True:
list_of_lists.append(name_nodes.nodes)
recurse_list(nodelist)
return list_of_lists

这段代码得到以下输出

[[2, 3], [5, 6, 2], [2, 4, 5], [3, 4, 5], [3, 4, 5]]

我很惊讶没有一些模块或一些内置功能可以更好地处理嵌套列表,因为有很多问题处理类似但不同的行为。我能找到的最接近的问题是here 。但这并不正是我正在寻找的东西。感谢您的回答。

最佳答案

def add1(L):
for i, elem in enumerate(L):
if isinstance(elem, int):
L[i] += 1
else:
L[i] = add1(elem)
return L

输出:

>>> L = [[[1,2],[4,5]], 1, [1,3,4],[2,3,4]]
>>> add1(L)
[[[2, 3], [5, 6]], 2, [2, 4, 5], [3, 4, 5]]

关于python - 如何递归修改深层嵌套列表的每个值并返回另一个类似的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33155708/

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