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

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

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

>>> a

['a', 'b', ('c', 'd')]

>>>

>>> for elem in a:

... print type(elem)

...

<type 'str'>

<type 'str'>

<type 'tuple'>

回答:

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

>>> type( ('a') )

<type 'str'>

>>> type( ('a',) )

<type 'tuple'>

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

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

^ ^

从Python文档:

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

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

x = tuple(['a'])

以上是 Python-如何创建仅包含一个元素的元组 的全部内容, 来源链接: utcz.com/qa/435425.html

回到顶部