【问题标题】:Python algorithm to search nested lists to check if a list already existsPython算法搜索嵌套列表以检查列表是否已存在
【发布时间】:2017-11-22 19:11:18
【问题描述】:

我在尝试在 Python 中找出一个简单的算法来检查列表中是否已经存在新列表之前遇到了一些麻烦,然后我添加新列表是否有意义?例如:

List 1 = [[P1, 3, P2, 2], [P3, 3, P4, 2], [P5, 1, P6, 3]]
List 2 = [P1, 3, P2, 2]

基本上我想要做的是在我实际将它添加到列表之前检查“列表 2”是否已经存在于“列表 1”中。我意识到这可能很容易实现,但是我对编程还很陌生,并且在弄清楚如何做到这一点时遇到了一些麻烦。

我还想问一下,例如,我将如何检查列表以查看值是否大于 3?例如,如果我有列表:

List 1 = [[P1, 3, P2, 2], [P3, 4, P4, 2]]

我意识到“我如何做到这一点”的问题不适合 Stack Overflow,但是,我已经通过互联网寻找答案并且仍在苦苦挣扎,因此非常感谢任何帮助,谢谢 :)

【问题讨论】:

    标签: python algorithm list search nested


    【解决方案1】:
    l1 = [['P1', 3, 'P2', 2], ['P3', 3, 'P4', 2], ['P5', 1, 'P6', 3]]
    l2 = ['P1', 3, 'P2', 2]
    
    if l2 not in l1:
        l1.append(l2)
    

    如果l1 中不存在l2,则将其添加到l1。在这种情况下,由于l2 存在于l1 中,因此没有变化。

    您问题的第二部分:检查列表中的项目是否大于 3

    l1 = [['P1', 3, 'P2', 2], ['P3', 4, 'P4', 2], ['P5', 1, 'P6', 3]]
    
    for i in l1:
        for j in i:
            if type(j) is int:
                if j > 3:
                    print("Greater than 3")
    

    【讨论】:

      【解决方案2】:

      要检查是否存在,只需使用in:

      List1 = [['P1', 3, 'P2', 2], ['P3', 3, 'P4', 2], ['P5', 1, 'P6', 3]]
      List2 = ['P1', 3, 'P2', 2]
      if List2 in List1:
         do_something()
      

      要查找第二个值大于或等于 3 的列表:

      List1 = [['P1', 3, 'P2', 2], ['P3', 3, 'P4', 2], ['P5', 1, 'P6', 3]]
      new_list = [i for i in List1 if i[1] >= 3]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-03-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多