4 ms·
Python has comprehensions for this style of programming: def groupby_unsorted(iterable, key): return [(k, [v for k, v in g]) for k,
by azag0 11y ago
Python has comprehensions for this style of programming:
def groupby_unsorted(iterable, key):
return [(k, [v for k, v in g])
for k, g in
groupby(sorted((key(v), v) for v in iterable),
lambda item: item[0])]
print(groupby_unsorted([1, 2, 3, 4], lambda v: v % 2))
- wfunction 11y agoYes, list comprehensions can take care of some of these, but you're completely missing the entire point. The point was that writing something like lambda item: item[0] in your code is inferior to lambda (k, v): k in terms of readability and comprehensibility. It is both longer and it also doesn't document the fact that the item is semantically a key-value pair. The problem is not (and has never been) whether something is "necessary" or "possible". Tuple unpacking obviously completely unnecessary to begin with, it has nothing to do with whether this is done in a parameter or not. The problem is whether the code is expressed better via unpacking.