gpt4 book ai didi

python - 如何使用递归从列表中删除某些内容? Python

转载 作者:行者123 更新时间:2023-12-01 09:28:17 25 4
gpt4 key购买 nike

我有这个练习:

您有一个树形图作为输入,并且需要删除其叶子。因此,您需要从列表列表中删除空列表。

例如:

[[[[]、[]]、[[]、[]]]、[[]、[]、[]]]

变成这样:[[[]、[]]、[]]

我尝试用pop和del,但是老师说要用递归。它还给出 None 作为输出。但我不知道该怎么做。你能解释一下如何或者你能帮助解决这个问题吗?

  def tree_cut(tree):
for i in range(len(tree)):
if tree[i]=="":
tree.pop(i)
return tree
for k in tree[i]=="":
if k=="":
tree.remove(k)
return tree

最佳答案

解决办法:

def tree_cut(tree):
return [tree_cut(x) for x in tree if x]

使用 list comprehension迭代、过滤和转换树中的节点。

也可以写成 map()filter() :

def tree_cut(tree):
return list(map(tree_cut, filter(None, tree)))

if x 部分 tests if the list is not empty .

>>> tree = [[[[], []], [[], []]], [[], [], []]]
>>> tree_cut(tree)
[[[], []], []]

关于python - 如何使用递归从列表中删除某些内容? Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50187087/

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