python3.8中返回了预期的类型'str',元组[str] [重复]

Posted

技术标签:

【中文标题】python3.8中返回了预期的类型\'str\',元组[str] [重复]【英文标题】:Expected type 'str', Tuple[str] was returned in python3.8 [duplicate]python3.8中返回了预期的类型'str',元组[str] [重复] 【发布时间】:2022-01-14 19:59:03 【问题描述】:

python3.8 中返回了预期类型 strTuple[str]

CA2 = "2CA",
CA3 = "3CA",
CA4 = "4CA",
LTE = "LTE"
def temp() -> str:
    ca_list = [1, 2, 3]
    if len(ca_list) == 1:
        result = LTE
    elif len(ca_list) == 2:
        result = CA4
    elif len(ca_list) == 3:
        result = CA2
    else:
        result = CA3
    return result
temp()

输出:('2CA',)

【问题讨论】:

问题是什么?您声明该函数返回一个 str,但随后您返回 "2CA", 这是元组。 在 "2CA" 后面加上逗号会使你的变量 'CA2' 成为一个元组并被返回。 为什么返回 ('2CA',),正确的返回是 2CA。 ("2CA",) 和你的变量CA2="2CA", 是一样的。 【参考方案1】:

每个后面的逗号会自动将字符串(例如 "2CA")转换为元组(例如 ('2CA',)),因此您的输出是包含它的元组。

如果你想要一个字符串输出,只需删除逗号

请看这里: Why does adding a trailing comma after a variable name make it a tuple?

【讨论】:

以上是关于python3.8中返回了预期的类型'str',元组[str] [重复]的主要内容,如果未能解决你的问题,请参考以下文章

无法将“字符串”类型的值转换为预期的参数类型“布尔”

scala之旅-核心语言特性元组

当预期元组类型参数时,我们是否总能使用列表类型作为函数参数?

预期类型 Union[str, bytes, int] 但得到 Sequence[Union[int, float, str]]

注册 - 序列项 0:预期的 str 实例,找到 NoneType

9str类型和byte类型转换列表拾遗元组拾遗字典拾遗