如何为 itertools groupby 指定类型?

How to specify types for itertools groupby?

我有一个要操作的字符串列表。 return 类型类似于组类型,由 int 作为键和字符串列表作为值组成。

我尝试了什么?

from typing import List, Dict, Iterator

from itertools import groupby

def group_names(names: List[str]) -> Dict[int, list]:
    group_iter: Iterator[int, Iterator[list]]  = groupby(sorted(names,key=len), lambda x: len(x)) # -> Having an issue here
    return {k: list(v) for k, v in group_iter}

它工作正常我将它键入为由任何类型组成的迭代器。

group_iter: Iterator[Any]  = groupby(sorted(names,key=len), lambda x: len(x))

但是我想为组密钥和项目指定类型?

参考 我注意到分组依据的 return 类型是:

Iteratable[Tuple[<key_type>, Iterable[<item_type>]]]

所以,在我的例子中,类型是:

group_iter: Iterator[Tuple[int, Iterable[str]]]  = groupby(sorted(names,key=len), lambda x: len(x))