python - 如何使用多个条件过滤 Python 列表?

标签 python list

我有这个列表理解,它返回列表 lst_fcflds 中的元素,如果它们不在列表 RROPFields 中:

nfld_rrop = [i for i in lst_fcflds if i not in RROPFields]

并且想要一个过滤器,这样如果 OBJECTIDSHAPE 在 lst_fclfds 中,它们也不会被返回 - 比如:

nfld_rrop = [i for i in lst_fcflds if i not in RROPFields and not in ["OBJECTID","SHAPE"]]

最佳答案

你只是少了一个i

nfld_rrop = [i for i in lst_fcflds if i not in RROPFields and i not in ["OBJECTID","SHAPE"]]
                                                              ^

但是为了提高性能,我会先添加一个步骤来创建一个集合,这样您就可以更快地进行成员查找。

filters = set(RROPFields + ["OBJECTID", "SHAPE"])
nfld_rrop = [i for i in lst_fcflds if i not in filters]

关于python - 如何使用多个条件过滤 Python 列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30919430/

相关文章:

python - 如何在Python中以更简洁的方式传递多个参数

python - 注入(inject)Python类成员函数

arrays - Ansible with_subelements 嵌套级别

python - 如何将列表列表与字符串列表组合

python - 将混合列表转换为字符串,只为字符串保留引号

python - 如何将“添加到python中的字符串

python - Python 中具有 sigma 裁剪的二维数组的中值

python - 使用zeromq在python中进行远程tcp连接

c# - 通过索引/键引用时列表与字典

javascript - 根据第一个字母获取元素