【问题标题】:typing Dict with multiple key value types [duplicate]键入具有多种键值类型的 Dict [重复]
【发布时间】: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]]

但是,内部字典具有两个键的 intfloat 值类型。我不知道如何注释

【问题讨论】:

标签: python python-3.x type-hinting typing


【解决方案1】:

你应该可以使用Union:

联合类型; Union[X, Y] 表示 X 或 Y。

from typing import Union

Dict[Tuple[int, int], Dict[str, Dict[str, Union[int, float]]]

话虽如此,如果键始终相同,最好使用tuplenamedtuple 代替内部dict

【讨论】:

  • 这里的联合意味着所有字段都接受 int 和 float。如果区分哪些键接受 int 和哪些接受 float 很重要,那么这将过于笼统。尽管如此,OP 在他的问题中并没有做出这种区分
  • @Karl True。在这种情况下,您的 TypedDict 建议更有意义。
  • 我会调查这个TypedDict认为字典的结构是固定的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-04
  • 2021-12-19
  • 2021-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多