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