gpt4 book ai didi

python - 使用递归将 list 中的列表转换为仅包含整数的列表

转载 作者:行者123 更新时间:2023-12-01 00:42:50 24 4
gpt4 key购买 nike

我考试时遇到的问题之一是仅使用递归(不允许循环)编写一个 python 程序。目标是转换包含整数和列表(也仅包含整数)的列表,并生成仅包含这些整数的单个列表。

下面的代码中一切正常,直到遇到列表:在此之后它就停止了。修复必须相当简单,但我就是找不到它。

a = [1,5,2,[3,4],6]

def list_in_list(l, i = 0):
if i >= len(l) - 1:
return [l[i]] if type(l[i]) == int else list_in_list(l[i], i=0)
elif type(l[i]) == list:
return list_in_list(l[i],i=0)
return [l[i]] + list_in_list(l, i+1)
print(list_in_list(a))

最佳答案

这适用于任何级别的任何级别的嵌套列表:

a = [1,5,2,[3, [4, 7]],6]

def flatten(lst):
if not lst:
return []

first, rest = lst[0], lst[1:]

if isinstance(first, list):
return flatten(first) + flatten(rest)
else:
return [first] + flatten(rest)


print(flatten(a))

打印:

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

关于python - 使用递归将 list 中的列表转换为仅包含整数的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57222284/

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