为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕森卡 2019-06-25 15:23:48
如何创建只有一个元素的元组在下面的示例中,我希望所有的元素都是元组,为什么当一个元组只包含一个字符串时,它会被转换成一个字符串呢?>>> a = [('a'), ('b'), ('c', 'd')]>>> a['a', 'b', ('c', 'd')]>>> >>> for elem in a:...     print type(elem)... <type 'str'><type 'str'><type 'tuple'>
查看完整描述

3 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

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

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

要修复示例代码,在这里添加逗号:

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

             ^       ^

Python文档:

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

如果您真的讨厌后缀逗号语法,那么解决办法就是传递一个listtuple()职能:

x = tuple(['a'])


查看完整回答
反对 回复 2019-06-25
?
千万里不及你

TA贡献1784条经验 获得超9个赞

前两个例子不是元组,而是字符串。单项元组需要后缀逗号,如:

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


查看完整回答
反对 回复 2019-06-25
?
DIEA

TA贡献1820条经验 获得超2个赞

('a')不是元组,而是字符串。

您需要在末尾添加一个额外的逗号才能使python把他们当作tuple: -

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


查看完整回答
反对 回复 2019-06-25
  • 3 回答
  • 0 关注
  • 1607 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信