【发布时间】:2015-05-12 14:52:55
【问题描述】:
我有一个递归的字符串元组,如下所示:
('text', ('othertext', ('moretext', ('yetmoretext'))))
(它实际上是一个字符串元组的元组 - 它是递归构造的)
我想将它展平成一个字符串列表,其中 foo[1] 将包含“text”、foo[2]“othertext”等等。
如何在 Python 中做到这一点?
副本是关于列表的二维列表,但这里我处理的是递归元组。
【问题讨论】:
-
看起来链接到的副本只处理二维列表...
-
递归级别是否固定?
('yetmoretext')也应该是('yetmoretext',) -
其实,不,'yetmoretext' 后面没有逗号。逗号分隔元组的元素,因此在最后一个元素之后没有。递归级别不固定,但输入相对较小。无论如何,我成功了,请参阅编辑。
-
实际上,在 ('yetmoretext') 之后没有逗号,你所拥有的是一个字符串。逗号使它成为一个元组。试试看:
type(('a string'))vstype(('a tuple',)) -
@MalcolmTucker:如上所述,最里面的元素不是没有尾随逗号的元组,它是一个字符串。这就是使您在下面的答案起作用的原因。