python - 我可以检测无限嵌套列表吗?

标签 python python-3.x list nested-lists

我注意到 Python 对象的一个​​有趣属性,即它们可以自相似。例如,如果您有一个列表并将其自身附加到它,您将在列表中的列表中获得列表中的列表...

x = []
x.append(x)
print(x)   # displayed as "[[...]]"

我的问题是,你能检测一个列表是否无限嵌套吗?我尝试了 x in x,但这并不是万无一失的——下面的代码在应该打印 True 时打印了 False:

x = []
x.append(x)
y = [x, x]
print(y in y)

我该如何解决这个问题?

最佳答案

当然。编写一个遍历列表的函数,构建在列表中找到的 ID 的引用列表。如果任何 ID 出现在其子列表之一中,则您有无限嵌套。

维护“祖先”ID 列表并在列表的每个元素上重复出现。

你现在可以写代码了吗?

关于python - 我可以检测无限嵌套列表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65910097/

相关文章:

python - Django-Rest-Framework 'str' 对象没有属性 'id'

c# - 如何在 session 状态下添加List <string>

python - 查找列表中第一个正元素的索引 - python

python - 从具有连续数字的列表中创建列表的列表

python - NLTK的一些问题

python - 按预定义时间选择单行并使用 Pandas 创建新的 DF

python - 从 Python 中的输入创建元组

python - 如何根据条件删除包含 numpy 数组的列表中的行?

python - 什么是行业广泛使用的持续集成工具,基于 Python 的程序的夜间构建系统

python - Chrome 崩溃了,jupyter notebook 还在运行吗?