分组列表元素
根据给定的函数对列表的元素进行分组。
- 使用
collections.defaultdict
初始化一个字典。 - 结合
fn
、for
循环和dict.append()
来填充字典。 - 使用
dict()
将其转换为普通字典。
from collections import defaultdict
from math import floor
def group_by(lst, fn):
d = defaultdict(list)
for el in lst:
d[fn(el)].append(el)
return dict(d)
group_by([6.1, 4.2, 6.3], floor) # {4: [4.2], 6: [6.1, 6.3]}
group_by(['one', 'two', 'three'], len) # {3: ['one', 'two'], 5: ['three']}