猿问

如何创建只有一个元素的元组

如何创建只有一个元素的元组

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

>>> a = [('a'), ('b'), ('c', 'd')]>>> a['a', 'b', ('c', 'd')]>>> >>> for elem in a:...     print type(elem)... <type 'str'><type 'str'><type 'tuple'>


慕森卡
浏览 1608回答 3
3回答

慕尼黑8549860

因为前两个元素不是元组,它们只是字符串。括号不会自动使它们成为元组。您必须在字符串后面添加一个逗号,以指示python它应该是一个元组。>>>&nbsp;type(&nbsp;('a')&nbsp;)<type&nbsp;'str'>>>>&nbsp;type(&nbsp;('a',)&nbsp;)<type&nbsp;'tuple'>要修复示例代码,在这里添加逗号:>>>&nbsp;a&nbsp;=&nbsp;[('a',),&nbsp;('b',),&nbsp;('c',&nbsp;'d')] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^从Python文档:一个特殊的问题是包含0或1项的元组的构造:语法有一些额外的怪癖来容纳这些项。空元组由空对括号构成;带有一个项的元组是通过在值后面加上逗号来构造的(将单个值括在括号中是不够的)。丑陋但有效。如果您真的讨厌后缀逗号语法,那么解决办法就是传递一个list到tuple()职能:x&nbsp;=&nbsp;tuple(['a'])

千万里不及你

前两个例子不是元组,而是字符串。单项元组需要后缀逗号,如:>>>&nbsp;a&nbsp;=&nbsp;[('a',),&nbsp;('b',),&nbsp;('c',&nbsp;'d')]>>>&nbsp;a[('a',),&nbsp;('b',),&nbsp;('c',&nbsp;'d')]

DIEA

('a')不是元组,而是字符串。您需要在末尾添加一个额外的逗号才能使python把他们当作tuple: ->>>&nbsp;a&nbsp;=&nbsp;[('a',),&nbsp;('b',),&nbsp;('c',&nbsp;'d')]>>>&nbsp;a[('a',),&nbsp;('b',),&nbsp;('c',&nbsp;'d')]>>>
随时随地看视频慕课网APP

相关分类

Python
我要回答