Python-如何创建仅包含一个元素的元组

发布于 2021-02-02 23:20:49

在下面的示例中,我希望所有元素都是元组,为什么当元组仅包含单个字符串时,它会转换为字符串?

>>> a = [('a'), ('b'), ('c', 'd')]
>>> a
['a', 'b', ('c', 'd')]
>>> 
>>> for elem in a:
...     print type(elem)
... 
<type 'str'>
<type 'str'>
<type 'tuple'>
关注者
0
被浏览
492
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    因为前两个元素不是元组;他们只是字符串。括号不会自动使它们成为元组。你必须在字符串后添加一个逗号,以指示python它应该是一个元组。

    >>> type( ('a') )
    <type 'str'>
    
    >>> type( ('a',) )
    <type 'tuple'>
    

    要修复示例代码,请在此处添加逗号:

    >>> a = [('a',), ('b',), ('c', 'd')]
    
                 ^       ^
    

    从Python文档:

    一个特殊的问题是包含0或1项的元组的构造:语法具有一些额外的怪癖来容纳这些项。空元组由一对空括号组成;一个带有一个项目的元组是通过在值后面加上逗号来构造的(仅将一个值括在括号中是不够的)。难看,但是有效。

    如果你确实讨厌尾随的逗号语法,则一种解决方法是将a传递list给该tuple()函数:

    x = tuple(['a'])
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看