Python将一个元素的列表转换为带括号的字符串

时间:2016-07-04 13:50:22

标签: python

如何将包含一个元素的python列表转换为带括号的字符串? 对于多个元素,我只需使用返回为元组('a','b')的{​​{1}}即可,但如果元素为1,则返回('a',)但我想返回{{ 1}} 样品:

('a')

2 个答案:

答案 0 :(得分:5)

避免依赖默认的__repr__()方法来格式化字符串,它们可能会改变。

明确说明你的意图

 print "('" + "', '".join(mylist) + "')"

答案 1 :(得分:1)

>>> ('a') == 'a'
True

如果你不打算使用单个元素元组,那么括号只是分组括号(不是容器),并且它们不会像你想要的那样粘贴,除了你将它们作为a字符串的一部分包含在内,或者定义自定义打印函数。

使用自定义打印功能,您可以按原样保持从列表到元组(即t = tuple(mylist))的转换,并按原样使用单个元素元组:

def tuple_print(t):
    print(str(t).replace(',', '') if len(t) == 1 else t)

<强>试验

>>> def tuple_print(t):
...      print(str(t).replace(',', '') if len(t) == 1 else t)
...
>>> mylist = ["a"]
>>> t = tuple(mylist)
>>> t
('a',)
>>> tuple_print(t)
('a')
>>> t = ('a', 'b')
>>> tuple_print(t)
('a', 'b')