我有一个清单:list = [1,2,3].我想将其转换为带括号的字符串:string = (1,2,3).
目前我正在使用字符串替换string = str(list).replace('[','(').replace(']',')').但我认为使用regex.sub有更好的方法.但我不知道该怎么做.非常感谢
Jon*_*nts 14
如果确实有一个列表,那么:
>>> s = [1,2,3]
>>> str(tuple(s))
'(1, 2, 3)'
Run Code Online (Sandbox Code Playgroud)
你可以string.maketrans改用——我打赌它比一系列的运行速度更快,str.replace并且可以更好地扩展到更多的单个字符替换。
>>> import string
>>> table = string.maketrans('[]','()')
>>> s = "[1, 2, 3, 4]"
>>> s.translate(table)
'(1, 2, 3, 4)'
Run Code Online (Sandbox Code Playgroud)
您甚至可以通过将可选的第二个参数传递给 来使用它从原始字符串中删除字符str.translate:
>>> s = str(['1','2'])
>>> s
"['1', '2']"
>>> s.translate(table,"'")
'(1, 2)'
Run Code Online (Sandbox Code Playgroud)
在 python3.x 中,字符串模块消失了,您可以maketrans通过str内置模块访问:
table = str.maketrans('[]','()')
Run Code Online (Sandbox Code Playgroud)