gpt4 book ai didi

python - 如何从无关的嵌套中清除 Python 列表?

转载 作者:太空宇宙 更新时间:2023-11-03 14:36:36 25 4
gpt4 key购买 nike

我正在开发一个程序,其中有一个包含大量无关嵌套的特定列表,我们希望对其进行简化。

例如,一个输入可以是

[[['A', [[[[[[[[[['B', [[[[[[[[[['C', [[[[[[[[[['D']], [['E']], [['F', [[[[[[[[[['G']]]]]]]]]]]], [['H']], [['I']], [['J']]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]

它应该输出['A', ['B', ['C', [['D'], ['E'], ['F', ['G']], ['H'], [ '我'], ['J']]]]]

但是,在运行我的代码后,它什么也没做并返回 []

这是我的代码:

def clean_list(list2):
for item in list2:
if isinstance(item, list) and len(list2)==1: # this is an extraneous list!
item = clean_list(item)
list2.append(item[0].copy())
list2.remove(item)
return list2

最佳答案

您可以使用一个函数递归地取消嵌套给定列表中的每个项目,但如果列表只有一个项目并且该项目是一个列表,则将子列表传递给递归调用:

def denest(lst):
if isinstance(lst, list):
if len(lst) == 1 and isinstance(lst[0], list):
return denest(lst[0])
return [denest(i) for i in lst]
return lst

因此,鉴于您的样本列表存储在变量 lst 中,denest(lst) 将返回:

['A', ['B', ['C', [['D'], ['E'], ['F', ['G']], ['H'], ['I'], ['J']]]]]

关于python - 如何从无关的嵌套中清除 Python 列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57743672/

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