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

4
我有一个列表推导式,它会返回列表lst_fcflds中不在列表RROPFields中的元素: nfld_rrop = [i for i in lst_fcflds if i not in RROPFields] 我希望添加一个过滤器,如果OBJECTIDSHAPElst_fclfds中,则它们也不会被返回,就像这样: nfld_rrop = [i for i in lst_fcflds if i not in RROPFields and i not in ["OBJECTID","SHAPE"]]

1
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Mazdak
1个回答

7
你只是缺少一个i
nfld_rrop = [i for i in lst_fcflds if i not in RROPFields and i not in ["OBJECTID","SHAPE"]]
                                                              ^

然而,为了提高性能,我建议先添加一步创建一个set的操作,这样你就可以更快地查找成员。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接