如何打印不带括号的元组

2024-04-18 07:43:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图打印下面给出的不带括号的元组new_zoo

zoo=('python','elephant','penguin')
new_zoo=('monkey','camel',zoo)

我知道通常我们可以使用', '.join(...)。但是因为这里的new_zoo元组包含一个内部tuple zoo,所以当我使用', '.join(new_zoo)时,它显示:

^{pr2}$

有人能帮我回答这个问题吗?在


Tags: newpenguinmonkey括号元组joincameltuple
3条回答

{{cd2>你是第一个添加到你的new_zoo。在

zoo = ('python', 'elephant', 'penguin')
new_zoo = ('monkey', 'camel', *zoo) # ('monkey', 'camel', 'python', 'elephant', 'penguin')

然后对于打印,一种干净的方法是在print中展开元组并提供分隔符。在

^{pr2}$

如果要存储打印的字符串,可以在那里使用str.join。在

new_zoo_string = ', '.join(new_zoo) # 'monkey, camel, python, elephant, penguin'

您还必须加入zoo的内容:

zoo=('python','elephant','penguin')
new_zoo=('monkey','camel',','.join(zoo))
final_zoo = ','.join(new_zoo)

输出:

^{pr2}$

但是,您也可以迭代new_zoo的内容并应用str.join

zoo=('python','elephant','penguin')
new_zoo=('monkey','camel',zoo)
final_zoo = ','.join([i if not isinstance(i, tuple) else ','.join(i) for i in new_zoo])

输出:

^{pr2}$

最简单的方法是添加元组,而不是嵌套它们:

>>> new_zoo = ('monkey', 'camel') + zoo

另一种创建扁平元组的方法是使用星型解包(有时通俗地称为splat):

^{pr2}$

在这种情况下,您可以直接组装字符串:', '.join(new_zoo)。在

如果需要处理嵌套元组,最常用的方法是递归解决方案:

>>> new_zoo = ('monkey', 'camel', zoo)
>>> def my_join(tpl):
...    return ', '.join(x if isinstance(x, str) else my_join(x) for x in tpl)
>>> my_join(new_zoo)
monkey, camel, python, elephant, penguin

相关问题 更多 >