如何在Python中创建由多个元组组成的嵌套元组(元组的元组)
Python嵌套元组创建问题解决
问题背景
已定义两个元组:
a = ('Oct 27, 2021', 'Oct 24, 2021', 'Oct 20, 2021', 'Oct 20, 2021') b = ('1',)
最初采用拼接后转元组的写法,未得到预期结果:
>>> h = tuple([a+b]) >>> print(h) (('Oct 27, 2021', 'Oct 24, 2021', 'Oct 20, 2021', 'Oct 20, 2021', '1'),)
预期输出为两层结构的嵌套元组:
(('Oct 27, 2021', 'Oct 24, 2021', 'Oct 20, 2021', 'Oct 20, 2021'), ('1',))
注:单元素元组必须保留尾部逗号,('1')本质是字符串而非元组,上述预期输出里的('1')为书写疏漏,实际合法结构为('1',)
错误原因
a+b是元组拼接语法,会将两个元组的元素合并为一个一维元组,外层再套tuple([合并后的元组]),最终得到的是只有一个元素的外层元组,不符合嵌套要求。
正确实现
直接把两个元组作为元素放入新元组的括号内即可:
h = (a, b)
该写法会直接将a、b两个元组作为外层元组的两个元素,生成符合要求的嵌套结构。
内容的提问来源于stack exchange,提问作者Danny
相关产品推荐
相关产品推荐

