我的字符串以{
开头,以}
结束。这个括号总是在第一个也是最后一个必须出现,它们不能出现在中间。如下:
{-4,10746,.....,205}
{-3,105756}
删除要接收的括号的最有效方法是什么:
-4,10746,.....,205
-3,105756
答案 0 :(得分:2)
s[1:-1] # skip the first and last character
答案 1 :(得分:1)
您也可以使用replace
方法。
In [1]: a = 'hello world'
In [3]: a.replace('l','')
Out[3]: 'heo word'
答案 2 :(得分:1)
由于你不清楚有两种可能性,它可能是一个字符串或一组
如果它是一个集合,则可能有效:
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'
由于集合中没有顺序,输出就是那样
答案 3 :(得分:0)
这是一种相当迂回的方式,可以完全满足您的需求:
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)+',',
我确信有很多单行代码可以提供你想要的东西,但这是后台发生的事情,也会删除括号而不管它们在输入字符串中的位置。
答案 4 :(得分:0)
只是旁注,@ dlask的回答很有助于解决您的问题。
但是如果您真正想要的是将该字符串(看起来像一组)转换为设置对象(或其他一些数据结构),您还可以使用ast.literal_eval()
函数 -
>>> import ast
>>> s = '{-3,105756}'
>>> sset = ast.literal_eval(s)
>>> sset
{105756, -3}
>>> type(sset)
<class 'set'>
来自documentation -
<强> ast.literal_eval(node_or_string)强>
安全地评估表达式节点或包含Python文字或容器显示的Unicode或Latin-1编码字符串。提供的字符串或节点可能只包含以下Python文字结构:字符串,数字,元组,列表,dicts,布尔值和None。
答案 5 :(得分:0)
最安全的方法是剥离:
'{-4, 205, 10746}'.strip("{}")