以有效的方式加入具有格式的元组列表

时间:2019-05-09 23:22:38

标签: python python-3.x

我有以下元组列表

a = [(5, 2), (2, 4)]

我需要输出以下文本

(5,2) (2,4)

我尝试过

[",".join(str(i) for i in j) for j in a]

它提供以下列表

['5,3', '2,4']

但是尚未找到获得所需输出的有效方法,它必须适用于不同大小的元组列表。

4 个答案:

答案 0 :(得分:3)

您可以将str.join方法与生成器表达式结合使用,如下所示:

' '.join('(%s)' % ','.join(map(str, t)) for t in a)

这将返回一个包含以下内容的字符串:

(5,2) (2,4)

答案 1 :(得分:1)

如果您需要做的只是获取字符串输出,那么:

  1. 转换为字符串
  2. 剥括号

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)'