我有以下元组列表
a = [(5, 2), (2, 4)]
我需要输出以下文本
(5,2) (2,4)
我尝试过
[",".join(str(i) for i in j) for j in a]
它提供以下列表
['5,3', '2,4']
但是尚未找到获得所需输出的有效方法,它必须适用于不同大小的元组列表。
答案 0 :(得分:3)
您可以将str.join
方法与生成器表达式结合使用,如下所示:
' '.join('(%s)' % ','.join(map(str, t)) for t in a)
这将返回一个包含以下内容的字符串:
(5,2) (2,4)
答案 1 :(得分:1)
如果您需要做的只是获取字符串输出,那么:
str(a).strip("[]")
出:
'(5,2) (2,4)'
答案 2 :(得分:0)
只需尝试这样。
join()方法适用于字符串容器,因此我们使用 str()函数将元组转换为字符串。
>>> text = " ".join(str(tup).replace(" ", '') for tup in a)
>>> text
'(5,2) (2,4)'
>>>
>>> print(text)
(5,2) (2,4)
>>>
以防万一,如果要分开omma
>>> text = ",".join(str(tup).replace(" ", '') for tup in a)
>>>
>>> text
'(5,2),(2,4)'
>>>
建议:最后,您可以将代码包装在函数
get_list_as_str()
中,并在每次要以字符串形式获取元组列表时调用它多次(代码可重用性的概念)。
>>> def get_list_as_str(a):
... text = " ".join(str(tup).replace(" ", '') for tup in a)
... return text
...
>>>
>>> a = [(1, 5, 6), (4,7, 8, 9), (4, 7)]
>>> text = get_list_as_str(a)
>>> print(text)
(1,5,6) (4,7,8,9) (4,7)
>>>
>>> b = [(1,1), (4,7, 8), (3, 3, 2, 9, 10, 5 * 6)]
>>> text = get_list_as_str(b)
>>> print(text)
(1,1) (4,7,8) (3,3,2,9,10,30)
>>>
就是这样。
答案 3 :(得分:0)
我不确定这是否是最好的方法,但这绝对有帮助。
a = [(5, 2), (2, 4)]
(str(a)[1:-1]).replace("),",')')
输出:
'(5, 2) (2, 4)'