python 2.7 去掉括号
python 2.7 remove brackets
我有一个以 {
开头并以 }
结尾的字符串。这个括号总是在最前面和最后而且必须出现,它们不能出现在中间。如下:
{-4,10746,.....,205}
{-3,105756}
去掉括号接收最有效的方法是什么:
-4,10746,.....,205
-3,105756
s[1:-1] # skip the first and last character
您也可以使用replace
方法。
In [1]: a = 'hello world'
In [3]: a.replace('l','')
Out[3]: 'heo word'
这里有一个相当迂回的方式来满足您的需求:
l = {-3,105756}
new_l = []
for ch in l:
if ch!='{' and ch!= '}':
new_l.append(ch)
for i,val in enumerate(new_l):
length = len(new_l)
if(i==length-1):
print str(val)
else:
print str(val)+',',
我敢肯定有许多单行代码可以满足您的需求,但这是后台发生的事情,并且还会删除大括号,而不管它们在输入字符串中的位置如何。
附带说明一下,@dlask 的回答可以很好地解决您的问题。
但是如果您真正想要的是将该字符串(看起来像一个集合)转换为一个集合对象(或其他一些数据结构),您还可以使用 ast.literal_eval()
函数 -
>>> import ast
>>> s = '{-3,105756}'
>>> sset = ast.literal_eval(s)
>>> sset
{105756, -3}
>>> type(sset)
<class 'set'>
ast.literal_eval(node_or_string)
Safely evaluate an expression node or a Unicode or Latin-1 encoded string containing a Python literal or container display. The string or node provided may only consist of the following Python literal structures: strings, numbers, tuples, lists, dicts, booleans, and None.
因为你不清楚有两种可能是字符串或者集合
如果是集合,这可能有效:
a= {-4, 205, 10746}
",".join([str(s) for s in a])
output='10746,-4,205'
如果它是一个字符串,这将起作用:
a= '{-4, 205, 10746}'
a.replace("{","").replace("}","")
output= '-4, 205, 10746'
由于设置中没有顺序输出就是这样
最安全的方法是剥离:
'{-4, 205, 10746}'.strip("{}")
我有一个以 {
开头并以 }
结尾的字符串。这个括号总是在最前面和最后而且必须出现,它们不能出现在中间。如下:
{-4,10746,.....,205}
{-3,105756}
去掉括号接收最有效的方法是什么:
-4,10746,.....,205
-3,105756
s[1:-1] # skip the first and last character
您也可以使用replace
方法。
In [1]: a = 'hello world'
In [3]: a.replace('l','')
Out[3]: 'heo word'
这里有一个相当迂回的方式来满足您的需求:
l = {-3,105756}
new_l = []
for ch in l:
if ch!='{' and ch!= '}':
new_l.append(ch)
for i,val in enumerate(new_l):
length = len(new_l)
if(i==length-1):
print str(val)
else:
print str(val)+',',
我敢肯定有许多单行代码可以满足您的需求,但这是后台发生的事情,并且还会删除大括号,而不管它们在输入字符串中的位置如何。
附带说明一下,@dlask 的回答可以很好地解决您的问题。
但是如果您真正想要的是将该字符串(看起来像一个集合)转换为一个集合对象(或其他一些数据结构),您还可以使用 ast.literal_eval()
函数 -
>>> import ast
>>> s = '{-3,105756}'
>>> sset = ast.literal_eval(s)
>>> sset
{105756, -3}
>>> type(sset)
<class 'set'>
ast.literal_eval(node_or_string)
Safely evaluate an expression node or a Unicode or Latin-1 encoded string containing a Python literal or container display. The string or node provided may only consist of the following Python literal structures: strings, numbers, tuples, lists, dicts, booleans, and None.
因为你不清楚有两种可能是字符串或者集合
如果是集合,这可能有效:
a= {-4, 205, 10746}
",".join([str(s) for s in a])
output='10746,-4,205'
如果它是一个字符串,这将起作用:
a= '{-4, 205, 10746}'
a.replace("{","").replace("}","")
output= '-4, 205, 10746'
由于设置中没有顺序输出就是这样
最安全的方法是剥离:
'{-4, 205, 10746}'.strip("{}")