Dar*_*eth 3 python arrays recursion list
目前,我正在研究一个问题。给我一个列表,该列表的元素可以包含其他列表,列表列表或整数。例如,我可能会收到:
[[[[], 1, []], 2, [[], 3, []]], 4, [[[], 5, []], 6, [[], 7, [[], 9, []]]]]
Run Code Online (Sandbox Code Playgroud)
我的目标是解析数组,并且仅将整数附加到新列表中。到目前为止,这是我所做的:
def fun(a):
if a == []:
return None
elif type(a) == int:
print("Found a digit: ", a)
return a
for i in a:
fun(i)
Run Code Online (Sandbox Code Playgroud)
当前,此函数以递归方式遍历列表并成功找到每个整数。现在,我遇到了将这些整数附加到新列表,然后在最后返回该列表的问题。输出应如下所示:
[1,2,3,4,5,6,7,9]
Run Code Online (Sandbox Code Playgroud)
有指针吗?
将列表作为参数传递给追加。
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)
Run Code Online (Sandbox Code Playgroud)
如果需要原始功能签名,可以将其分为两个功能。
def fun(a):
result = []
fun_recursive(a, result)
return result
Run Code Online (Sandbox Code Playgroud)
fun_recursive() 将如上定义。