gpt4 book ai didi

python - 如何递归地将项目添加到列表中?

转载 作者:太空宇宙 更新时间:2023-11-03 12:43:16 28 4
gpt4 key购买 nike

目前,我正在处理一个问题。我得到一个列表,其元素可能包含其他列表、列表的列表或整数。例如,我可能会收到:

[[[[], 1, []], 2, [[], 3, []]], 4, [[[], 5, []], 6, [[], 7, [[], 9, []]]]]

我的目标是解析数组,并将仅整数 附加到新列表。这是我到目前为止所做的:

def fun(a):
if a == []:
return None
elif type(a) == int:
print("Found a digit: ", a)
return a
for i in a:
fun(i)

目前,这个函数递归地遍历列表并成功找到每个整数;现在,我在将这些整数附加到新列表并在最后返回该列表时遇到了问题。输出应该是这样的:

[1,2,3,4,5,6,7,9]

有什么建议吗?

最佳答案

将要追加的列表作为参数传递。

def fun(a, result):
if type(a) == int:
print("Found a digit: ", a)
result.append(a)
else:
for i in a:
fun(i, result)
old_list = [[[[], 1, []], 2, [[], 3, []]], 4, [[[], 5, []], 6, [[], 7, [[], 9, []]]]]
new_list = []
fun(old_list, new_list)
print(new_list)

如果您需要原始函数签名,可以将其拆分为两个函数。

def fun(a):
result = []
fun_recursive(a, result)
return result

fun_recursive() 的定义如上。

关于python - 如何递归地将项目添加到列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58174992/

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