Reputation: 1
freq_items = dict(filter(lambda k,v : float(v)/float(self.total_items) >= self.support, items_list.items()))
This line is giving me error, "lambda 1 missing positional argument: v". Anyone can help me out to figure this error.
Upvotes: 0
Views: 139
Reputation: 74685
In Python 2, it is possible to fix your program with argument tuple unpacking:
freq_items = dict(filter(lambda (k,v) : float(v)/float(self.total_items) >= self.support, items_list.items()))
This was removed in Python 3. But the following remains:
freq_items = dict(filter(lambda item: float(item[1])/float(self.total_items) >= self.support, items_list.items()))
However, you really should use a dictionary comprehension:
freq_items = {k:v for k,v in items_list.items() if float(v)/float(self.total_items) >= self.support}
Or if you prefer the dict
constructor for 2.5 compatibility.
freq_items = dict(k,v for k,v in items_list.items() if float(v)/float(self.total_items) >= self.support)
Upvotes: 1