【问题标题】:How do I check if a list contains at least one sublist?如何检查列表是否包含至少一个子列表?
【发布时间】:2015-07-23 08:52:38
【问题描述】:

我有两个列表。一个有 10 批 3 个对象(因此调用 list[0],显示 3 个对象带有 [0])。然后我有另一个 List 有一定数量的对象(它会改变,但我们可以使用 6 个对象作为示例)。

我需要创建一个循环来测试 6 个对象与 10 个对象中的 3 个对象(所以,list[0]list[1]... 等),如果在任何时候 6 个对象的列表中有 3 个对象匹配10 个迷你列表之一,它将Return True

也举个例子:

6_ObjList = [A,B,D,H,G]

3_ObjList[0] = [A,D,J] - 不应返回 true 并继续循环

3_ObjList[1] = [A,D,H] - 应该返回 true 并打破循环

如果没有匹配 - Return False。对不起,如果这一切都乱七八糟并且毫无意义。 我就是这么想的。

    for i in range(0,10):
        if(6_ObjList.Contains(3_ObjList[i])):
            return True
    return False

【问题讨论】:

  • 在python中,变量名不能从数字开始

标签: python list set subset sublist


【解决方案1】:

如果您的项目是独一无二的,那么执行此操作的最佳方式是使用集合:

list6 = set(['A', 'B', 'D', 'H', 'G'])
list10 = [set(['A', 'D', 'J']),
          set(['A', 'D', 'H'])]

def myfunc():
    for i in list10:
        if i.issubset(list6):
            return True
    return False

【讨论】:

    【解决方案2】:

    如果我正确解释了您的问题,您的意思是:

    如何确定嵌套列表的其中一个子列表是否仅包含另一个单独列表中的项目。

    在这种情况下,你想要这样的东西:

    >>> lst_of_lst = [[1, 3, 7], [2, 4, 6], [0, 1, 2]]
    >>> lst = [0, 1, 2, 3]
    >>> any(all(item in lst for item in sub_lst) for sub_lst in lst_of_lst)
    True
    

    【讨论】:

    • 感谢您的快速响应!!!我试过了,我没有收到任何错误,但它确实响应错误,它应该返回 true。我真的想不出原因,除了可能是因为我的 1st_of_1st 版本不像你的那样有序?而且因为它们是对象还是整数?我真的不知道为什么我是假的
    • @NickoM 没有minimal example,这是不可能的。请注意,整数对象。
    • 对不起,我是新手,发现很难附加,这是代码的图片puu.sh/hKz6D/b3b6ad30f6.png#EDITED LINK 如果您看不到,我可以尝试输入跨度>
    • @NickoM 代码图片!?帮个忙...请根据我刚刚发布的链接和editing guidance编辑问题给出一个最小的文本示例。
    • 没关系,我知道出了什么问题,我的列表,类似于你的“第一个”列表,本质上是第一个 = [[0,1,2,3]] 所以它实际上不是测试实际列表。感谢您的帮助
    【解决方案3】:
    for i in 6_ObjList:
        for j in 3_ObjList:
            if i == j:
                return True
            else:
                return False
    

    【讨论】:

    • 在python中,变量名不能以数字开头
    • 公平地说,无效的变量名很可能是从原始问题中接管的。不过,请在您的代码中添加一些解释(并将其编辑为语法正确)以稍微改进此答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-21
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 2022-11-21
    • 1970-01-01
    • 2020-05-11
    相关资源
    最近更新 更多