python中格式化字符串的元组和列表

2024-04-20 01:48:44 发布

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

在Python3.4中,我有一个元组

t = ('A', 'B', 'C')

还有一张单子

l = ['P', 'Q', 'R']

我需要将元组转换为格式为"(#A;#B;#C)"的字符串,将列表转换为格式为"(@P; @Q; @R)"的字符串。显而易见的方法是使用for循环和字符串操作遍历。你知道吗

有没有不运行循环的方法?你知道吗

谢谢!你知道吗


Tags: 方法字符串列表for格式单子元组
3条回答

为什么不使用循环?这可以非常简单地通过理解来完成:

>>> t = ('A', 'B', 'C')
>>> '({})'.format(';'.join('#{}'.format(s) for s in t))
'(#A;#B;#C)'
>>> 
>>> l = ['P', 'Q', 'R']
>>> '({})'.format('; '.join('@{}'.format(s) for s in l))
'(@P; @Q; @R)'
>>> 

如果不使用循环,另一种方法是将它们转换为string并使用string的replace方法,如下所示

str(t).replace("', '", ";#").replace("('", "(#").replace("')", ")")


str(l).replace("', '", '; @').replace("['", "(@").replace("']", ")")

如果只有三个元素,也可以分别替换它们。你知道吗

如果您真的坚持自己的格式和no for循环,那么可以尝试以下方法:

l_result = '(@' + '; @'.join(l) + ')'
t_result = '(#' + ';#'.join(t) + ')'

相关问题 更多 >