【问题标题】:Python 3 list comparison of sub elementPython 3 子元素列表比较
【发布时间】:2018-05-29 00:27:20
【问题描述】:

我有一个包含以下元素的列表

queue = [[(1, 5), 4, (1, 4)], [(2, 2), 6, (2, 3)], 
         [(1, 3), 6, (2, 3)], [(1, 3), 6, (1, 4)]]

还有一个叫

neighbors = [[(1, 5), 4, (1, 4)], [(1, 3), 6, (1, 4)], 
             [(2, 4), 4, (1, 4)], [(0, 4), 6, (1, 4)]]

如何检查第二个列表中的第一个元组元素是否存在于第一个中?

通常我会这样做:

for item in neighbors:
    if item[0] in queue:
        Do something...

但这缺少了一些东西。

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:

    queue 中建立索引,例如:

    queue_exists = set(q[0] for q in queue)
    

    然后测试queue中是否有类似:

    if item[0] in queue_exists:
    

    测试代码:

    queue = [[(1, 5), 4, (1, 4)], [(2, 2), 6, (2, 3)], [(1, 3), 6, (2, 3)],
             [(1, 3), 6, (1, 4)]]
    
    neighbors = [[(1, 5), 4, (1, 4)], [(1, 3), 6, (1, 4)], [(2, 4), 4, (1, 4)],
                 [(0, 4), 6, (1, 4)]]
    
    queue_exists = set(q[0] for q in queue)
    
    for item in neighbors:
        if item[0] in queue_exists:
            print(item)
    

    结果:

    [(1, 5), 4, (1, 4)]
    [(1, 3), 6, (1, 4)]
    

    【讨论】:

      猜你喜欢
      • 2015-08-01
      • 1970-01-01
      • 2020-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多