1
我有一个对象列表,我想要一个函数,可以将该列表与一个函数操作该列表中的项目,并产生一个字典与应用的结果键该函数对该项目起作用,值是该项目的列表。python相当于斯卡拉groupby
例子:
def group_by(iterable: Iterable[A], f: Callable[A, B]) -> Dict[B, List[A]]:
???
lst = [(1,2), (3,4), (1,3)]
result = group_by(lst, lambda i: i[0])
result == {1: [(1,2), (1,3)],
3: [(3,4)]}
itertools.groupby
是接近的,但我不想要求我输入进行排序。
'itertools.groupby'要求我输入进行排序 - 斯卡拉功能不,我不要我不想让这些数据成为需求。 – Daenyth
值得注意的是,'itertools.groupby'只将具有相同键的连续元素分组,所以你必须首先对列表进行排序。 – BrenBarn
@Daenyth:然后你可以在你的分组功能中自己排序。 – BrenBarn