【问题标题】:filter python list based on values in a different list根据不同列表中的值过滤python列表
【发布时间】:2021-09-06 05:24:29
【问题描述】:

我认为这是关于算法和数据结构的入门级计算机科学 101 课程问题。

我有一个清单:

VAV_ID_list = ['36','38','21','29','31','25','9','13','14','19','30','8','26','6','34','11','12028','20','27','15','12032','23','16','24','37','39','12033','10']

如何从VAV_ID_list 中过滤掉VAV_ID_exclude_list 中的这些值?

VAV_ID_exclude_list = ['36','38','21','29','31','25','9','13','14','19','30','8','26','6']

下面的这段代码显然没有做任何提示,非常感谢。

filtered_VAV_ID_list = [zone for zone in VAV_ID_list if zone == 36]

print(filtered_VAV_ID_list)

【问题讨论】:

标签: python


【解决方案1】:

您可以通过多种方式做到这一点:

这是最直接的方法。

>>> [i for i in VAV_ID_list if i not in VAV_ID_exclude_list]
['34', '11', '12028', '20', '27', '15', '12032', '23', '16', '24', '37', '39', '12033', '10']

如果顺序不重要且没有重复项,您甚至可以使用集合。

>>> list(set(VAV_ID_list) - set(VAV_ID_exclude_list))
['24', '11', '39', '27', '20', '23', '12033', '12032', '16', '37', '34', '15', '12028', '10']

【讨论】:

  • 感谢您提供的信息,我按向上箭头 1,但@Sujay 先回答
【解决方案2】:

这就是你想要的

list2= [zone for zone in VAV_ID_list if zone not in VAV_ID_exclude_list]

【讨论】:

    【解决方案3】:
    for el in VAV_ID_list:
        if el not in VAV_ID_exclude_list:
            print(el)
    

    我认为这样就可以了。

    【讨论】:

      猜你喜欢
      • 2021-06-17
      • 2021-11-25
      • 2013-09-11
      • 2015-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-01
      相关资源
      最近更新 更多