我有这个列表理解,它返回列表中的元素,lst_fcflds如果它们不在列表中RROPFields:
nfld_rrop = [i for i in lst_fcflds if i not in RROPFields]
并且想要一个过滤器,这样如果OBJECTID或者 SHAPE在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"]]
^
Run Code Online (Sandbox Code Playgroud)
但是为了提高性能,我会首先添加一步来创建一个,set这样您就可以进行更快的成员资格查找.
filters = set(RROPFields + ["OBJECTID", "SHAPE"])
nfld_rrop = [i for i in lst_fcflds if i not in filters]
Run Code Online (Sandbox Code Playgroud)