Python:检查嵌套列表是否在嵌套列表中

标签 python list nested-lists

对于这个可能很愚蠢的问题,我们深表歉意。但这似乎是一个我无法找到答案的难解问题。

假设我在 python 中有以下混合嵌套列表:

a = [((1,1),(0,0)), (3,4)]

我想检查以下元组 bcd 是否出现在 a 中:

b = (1,1)
c = (0,0)
d = (3,4)

print(b in a)  # <- False ?
print(c in a)  # <- False ?
print(d in a)  # <- True

我想替换每个打印语句中的代码,以便搜索在列表中找到元组并因此返回 True

如有任何帮助,我们将不胜感激。如果这个问题之前已经被问过,我们深表歉意。

最佳答案

我们需要一个递归函数,它接受一个列表或元组和一个要查找的元素。

每个函数都应使用 in 运算符检查元素是否在当前可迭代对象中。如果它在,则返回 True,否则检查它是否在任何较低的维度中,方法是用每个较低的可迭代对象递归调用自身,如果其中任何一个成功则返回(这可以通过for-loop,但我们也可以使用 any() 函数)。

所以一个类轮大致是:

def inc(it, e):
    return True if e in it else any(inc(iit, e) for iit in it if type(iit) in (list, tuple))

它按预期工作:

>>> inc(a, (1,1))
True
>>> inc(a, (0,0))
True
>>> inc(a, (3,4))
True

关于Python:检查嵌套列表是否在嵌套列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49935141/

相关文章:

c# - 有什么方法可以制作包含多个元素的 C# 列表?

c - C中的无向列表搜索

python - 我希望输出像 [[0,0,0,0,],[0,1,0,0],[0,2,0,0],[0,3,0,0]]

python - 使用 Python lmfit 进行曲线拟合的参数估计

python - Scapy:从带有自己的 init 的 Packet 派生的层

python - 如何使用 matplotlib 绘制 3d 高斯分布?

asp.net-mvc - C# 如何将 List<> 作为 Json 返回

R:在深度嵌套列表中按名称查找对象

javascript - Jquery 在单击时组合父 li 元素中的文本以获取路径

python - PyQtGraph 的 slider 小部件