gpt4 book ai didi

python - 为什么 List 不能包含多种类型?

转载 作者:太空狗 更新时间:2023-10-29 22:28:29 25 4
gpt4 key购买 nike

您可以在元组或列表中混合类型。为什么不能在键入提示中指定它?

>>> from typing import Tuple, List
>>> t = ('a', 1)
>>> l = ['a', 1]

>>> t2: Tuple[str, int] = ('a', 1)
>>> l2: List[str, int] = ['a', 1]

TypeError: Too many parameters for typing.List; actual 2, expected 1

最佳答案

在类型论中,列表是包含一种类型值的同构结构。因此,List 仅采用单一类型,并且该列表的每个元素都必须具有该类型。

但是,类型论还提供了总和类型,您可以将其视为从某些固定类型集中选择的一个值的包装器。 typing.Union 支持求和类型。要指定列表是 intstr 值的混合,请使用

List[Union[str, int]]

作为类型提示。

相比之下,元组是产品类型的一个示例,该类型由一组固定的类型组成,其值是一组值,一个来自产品类型中的每个类型. Tuple[int,int,int], Tuple[str,int]Tuple[int,str] 都是不同的类型,区分两者按产品中类型的数量和它们出现的顺序。

关于python - 为什么 List 不能包含多种类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53526516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com