Как привести к типу Union из typing?

В ходе стажировки наткнулся на новый для себя тип Union, прочел документацию там пример вот ссылка https://mypy.readthedocs.io/en/stable/kinds_of_types.html Понятный пример но не решает моей задачи.

У меня есть аргумент функции например

def myFunc(data: Dict[str, List[Tuple[str, str]]]): 

а вернуть я должен вот такой тип Dict[Union[str, int], Union[str, Tuple[str, str]]] Мне не нужно решение, скорее объяснение что за тип такой, можно на примере показать. Спасибо.


Ответы (3 шт):

Автор решения: cauf

Это словарь, ключами которого могут быть строки и числа, а значениями строки и кортежи из строк строк длинной 2 элемента.

→ Ссылка
Автор решения: insolor

Union обозначает, что значение может иметь один из типов перечисленных в квадратных скобках. Например Union[str, int] означает, что значение может иметь тип строки или целого числа.

Dict[Union[str, int], Union[str, Tuple[str, str]]] - словарь, в котором ключи целые числа или строки, а значения - строки или кортежи из двух строковых значений.

→ Ссылка
Автор решения: AivanF.

Union просто говорит о том, что некое значение может иметь один из нескольких заданных типов. То есть, если указано, что функция возвращает Union[str, int], то она может вернуть как строку, так и целое число.

Например:

def multiply(value: Union[str, int], factor: int) -> Union[str, int]:
    return value * factor

Будет работать как со строками, так и с числами.


Официальную документацую пожалуйста не путайте, она расположена здесь: docs.python.org: typing.Union

→ Ссылка