gpt4 book ai didi

python - 如何在分层列表中查找数字

转载 作者:行者123 更新时间:2023-11-30 23:31:17 25 4
gpt4 key购买 nike

我在Python中有一个分层列表,从某种意义上讲,分层列表包含多个列表,但子列表的数量和长度未定义。

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

我试图通过以下方式查找一个数字,但函数没有返回任何内容,是否有Pythonic方法来查找它?

def is_present(lst,value):
for element in lst:
if isinstance(element, list):
return is_present(element,value)
else:
if value == element:
return True

最佳答案

您遇到了一些问题:

  1. 您的返回声明行的缩进不正确。
  2. 您永远不会在任何地方返回 False(如果该元素不在列表中)。
  3. 递归时,只有当递归返回 True 时,才应返回 True(并忽略递归返回的 False)。这可以确保即使递归没有找到该元素,也会继续检查列表。

以下是修复了这些问题的函数:

def is_present(lst,value):
for element in lst:
if isinstance(element, list):
if is_present(element,value):
return True
else:
if value == element:
return True
return False

关于python - 如何在分层列表中查找数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20036600/

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