freq_items = dict(filter(lambda k,v : float(v)/float(self.total_items) >= self.support, items_list.items()))
这一行给了我错误,“lambda 1缺少位置参数:v”。任何人都可以帮我解决这个错误。
答案 0 :(得分:1)
在Python 2中,可以使用参数元组解包修复程序:
freq_items = dict(filter(lambda (k,v) : float(v)/float(self.total_items) >= self.support, items_list.items()))
这在Python 3中已被删除。但以下内容仍然存在:
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}
或者,如果您更喜欢2.5 {兼容性的dict
构造函数。
freq_items = dict(k,v for k,v in items_list.items() if float(v)/float(self.total_items) >= self.support)