我想将元组转换为以分号分隔的字符串。容易。
tup = (1,2)
';'.join(map(str,tup))
输出:
'1;2'
如果其中一个元组条目本身就是一个元组,那么我会得到这样的结果:
'1;(2, 3)'
我不想要那个逗号,我想要一个分号,而且我也想选择括号字符。
我想要这个:
'1;{2;3}'
是否有一种简单的方法可以深入连接嵌套到任何深度的元组元组,同时指定分隔符(示例中的';')和上述示例中的括号('{'和'}')?
请注意,我不想要这个,这个问题被标记为重复:
'1,2,3'
我还需要处理带逗号的字符串,所以我不能使用replace
:
flatten((1,('2,3',4)))
'1;{2,3;4}'
答案 0 :(得分:3)
拯救的递归!
def jointuple(tpl, sep=";", lbr="{", rbr="}"):
return sep.join(lbr + jointuple(x) + rbr if isinstance(x, tuple) else str(x) for x in tpl)
>>> jointuple((1,('2,3',4)))
'1;{2,3;4}'