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