首页 > 解决方案 > 根据不同列表中的值过滤python列表

问题描述

我认为这是关于算法和数据结构的入门级计算机科学 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_exclude_listVAV_ID_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

解决方案


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

这是最直接的方法。

>>> [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']

推荐阅读