python中lambda函数参数的传递

2024-04-26 10:12:51 发布

您现在位置:Python中文网/ 问答频道 /正文

freq_items = dict(filter(lambda k,v : float(v)/float(self.total_items) >= self.support, items_list.items()))

这行给了我一个错误,“lambda1缺少位置参数:v”。任何人都可以帮我找出这个错误。你知道吗


Tags: lambdaselfsupport参数错误itemsfloatfilter
1条回答
网友
1楼 · 发布于 2024-04-26 10:12:51

在Python 2中,可以使用参数tuple unpacking修复程序:

freq_items = dict(filter(lambda (k,v) : float(v)/float(self.total_items) >= self.support, items_list.items()))

这在python3中被删除了。但仍存在以下问题:

freq_items = dict(filter(lambda item: float(item[1])/float(self.total_items) >= self.support, items_list.items()))

然而,你真的应该使用字典理解:

freq_items = {k:v for k,v in items_list.items() if float(v)/float(self.total_items) >= self.support}

或者如果您更喜欢dict构造函数以实现2.5兼容性。你知道吗

freq_items = dict(k,v for k,v in items_list.items() if float(v)/float(self.total_items) >= self.support)

相关问题 更多 >