我想用包含过滤器函数和lambda的术语“FX”来过滤列表中的项目。这工作得很好:过滤python列表,同时将未过滤的术语耦合到其他列表。
MarketnoFX=list(filter(lambda x: "FX" not in x, Openmarket))
然而,这个名单必须与含数值其他两个列表,所以说,如果第x项从该列表中省略(通过创建一个新的列表),则必须也可以从其他两个列表中省略。我通常会简单地使用列表解析。
Openmarket=[someitems]
coupled1=[]
coupled2=[]
for item in Openmarket:
if "FX" in item:
pass
else:
someotherlist.append(item)
k=Openmarket.index(entry)
someotherotherlist.append(coupled1[k])
然而,这样做不会产生正确的结果,并在打印包含“FX”项目的指标,我得到例如,它表明这是两次发现的第12和第33条款,以及第71届只有一次。
过滤器功能看起来像是一种更优雅的做事方式,但是如何将它与其他列表结合呢?我已阅读过有关zip函数的信息,但我不确定如何在此处应用它。我不是一个非常有经验的Python程序员。
谢谢。
我使用Python 3.5(我应该在这个问题说明这一点),所以在你的第一行代码,我认为对我来说需要: zipped = list((zip(Opendeal,Openresult,Openmarket))) – Hanadulset
@Hanadulset你是对的。这是因为'zip()'从Python 3开始返回一个zip对象,而之前它是一个简单的列表。 – Delgan
我其实打算进一步扩大,但按下输入发表评论我的沮丧。 我打算上写: 我使用Python 3.5(我应该在这个问题说明这一点),所以在你的第一行代码,我认为我将需要: 压缩=名单((ZIP( Opendeal,Openresult,Openmarket))) 所以我试过: zipped = list((zip(Opendeal,Openresult,Openmarket))) zipped =(filter(lambda a,b,c:“FX”not in c *压缩)) 这将产生: 类型错误:过滤器预计2个论点,得到了200 顺便说一句,什么是你的代码的第三行,和什么呢: 拉链(*拉链)呢? – Hanadulset