【问题标题】:tuple(str) returns a tuple element per character [duplicate]tuple(str) 每个字符返回一个元组元素[重复]
【发布时间】:2019-11-24 17:01:14
【问题描述】:

我有一个函数可以接收一组日期时间格式或单个日期时间格式它的签名看起来像这样

`datetime_formats: Union[Tuple[str, ...], str] = (ISO_8601_FORMAT, ...) -> None

__init__我有一个简单的

if isinstance(datetime_formats, str)
    datetime_formats = tuple(datetime_formats)

这导致我发现在字符串上调用 Tuple 会将字符串拆分为一个元组,字符串中每个字符都有一个元素

>>> tuple('%Ztest')
('%', 'Z', 't', 'e', 's', 't')

我该怎么做才能得到

>>> tuple('%Ztest')
('%Ztest',)

【问题讨论】:

    标签: python tuples


    【解决方案1】:

    要么以使用括号的列表声明开始

    >>> tuple(['%Ztest'])
    ('%Ztest',)
    

    或者使用逗号进行隐式元组声明

    >>> '%Ztest',
    ('%Ztest',)
    

    如果您使用显式列表声明,您将遇到相同的拆分行为

    >>> tuple(list('%Ztest'))
    ('%', 'Z', 't', 'e', 's', 't')
    

    【讨论】:

    • 术语挑剔:这些不是声明。 python没有变量声明。像这样使用方括号是 list literal,使用括号(带逗号)是 tuple literal。调用listtuple 只是调用构造函数。
    • 我很欣赏你的挑剔。
    猜你喜欢
    • 2021-08-21
    • 1970-01-01
    • 2022-01-22
    • 2020-08-28
    • 2014-07-30
    • 2011-04-18
    • 2015-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多