Python元组加法如何生成指定嵌套元组结果?
问题:修改Python代码实现目标嵌套元组结构
用户编写的Python代码:
test_1 = ("a", "b", "c", "d", "e", "f", "g") test_2 = (("A", "B"), ("C", "D", "E")) test_3 = test_1 + test_2 print(test_3)
实际输出结果:
('a', 'b', 'c', 'd', 'e', 'f', 'g', ('A', 'B'), ('C', 'D', 'E'))
期望输出结果:
(('a', 'b', 'c', 'd', 'e', 'f', 'g'), ('A', 'B'), ('C', 'D', 'E'))
需要调整代码以得到期望的嵌套元组结构。
解决方案
问题根源在于元组拼接的规则:test_1是一维元组,直接和test_2相加时,Python会展开test_1的所有元素拼入结果,而非将test_1作为一个整体元组添加。
只需将test_1包装为单元素元组后再与test_2拼接即可:
test_1 = ("a", "b", "c", "d", "e", "f", "g") test_2 = (("A", "B"), ("C", "D", "E")) test_3 = (test_1,) + test_2 print(test_3)
执行后输出符合预期:
(('a', 'b', 'c', 'd', 'e', 'f', 'g'), ('A', 'B'), ('C', 'D', 'E'))
说明:(test_1,)创建了一个新元组,其中唯一元素就是原test_1元组。与test_2拼接时,这个整体会作为结果的第一个元素,加上test_2中的两个子元组,正好形成目标嵌套结构。
内容的提问来源于stack exchange,提问作者タチコマ
相关产品推荐
相关产品推荐

