键入具有多种键值类型的 Dict [重复]
Posted
技术标签:
【中文标题】键入具有多种键值类型的 Dict [重复]【英文标题】:typing Dict with multiple key value types [duplicate] 【发布时间】:2020-12-21 06:36:42 【问题描述】:我有一个 python 函数,它返回具有以下结构的字典
(int, int): string: string: int, string: float
我想知道如何使用类型提示来指定它。所以,这些位是清楚的:
Dict[Tuple[int, int], Dict[str, Dict[str, # what comes here]]
但是,内部字典具有两个键的 int
和 float
值类型。我不知道如何注释
【问题讨论】:
据我所知,正确执行此操作的唯一方法是使用 TypedDict。你看过python.org/dev/peps/pep-0589吗? 固定键重复:Python 3 dictionary with known keys typing 【参考方案1】:你应该可以使用Union
:
联合类型;
Union[X, Y]
表示 X 或 Y。
from typing import Union
Dict[Tuple[int, int], Dict[str, Dict[str, Union[int, float]]]
话虽如此,如果键始终相同,最好使用tuple
或namedtuple
代替内部dict
。
【讨论】:
这里的联合意味着所有字段都接受 int 和 float。如果区分哪些键接受 int 和哪些接受 float 很重要,那么这将过于笼统。尽管如此,OP 在他的问题中并没有做出这种区分 @Karl True。在这种情况下,您的TypedDict
建议更有意义。
我会调查这个TypedDict
认为字典的结构是固定的以上是关于键入具有多种键值类型的 Dict [重复]的主要内容,如果未能解决你的问题,请参考以下文章