Python将一个元素的列表转换为包含括号的字符串
问题描述:
如何将包含一个元素的python列表转换为包含括号的字符串? 对于一个以上的元素,它很容易对我来说,才刚刚使用tuple(list['a','b'])
返回的元组('a','b')
但如果元素之一,它返回为('a',)
,而是我想回到('a')
样本:Python将一个元素的列表转换为包含括号的字符串
mylist = ["a", " b"]
print tuple([s.strip() for s in mylist])
>> ('a', 'b')
mylist = ["a"]
print tuple([s.strip() for s in mylist])
>> ('a',) #rather I want to return ('a')
答
避免依赖在默认__repr__()
方法中,为了格式化字符串,它们可能会改变。
明确显示您的意图,而不是
print "('" + "', '".join(mylist) + "')"
答
>>> ('a') == 'a'
True
如果你不打算使用的单个元素的元组,然后在括号只是分组括号(不是容器),和他们赢得了” t 棒就像你想要它们一样,除非你将它们作为字符串的一部分与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')
'('a')'''a'' - 是你想要的吗?单元素元组包含逗号以避免模糊。 –
'('a')' - 带括号 – DougKruger