繁体   English   中英

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'

由于您不清楚,有两种可能,可能是字符串或集合

如果它是集合,则可能起作用:

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'

由于没有设置顺序,因此输出是这样

这是一种完全满足您需要的回旋方式:

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)

安全地评估包含Python文字或容器显示的表达式节点或Unicode或Latin-1编码的字符串。 提供的字符串或节点只能由以下Python文字结构组成:字符串,数字,元组,列表,字典,布尔值和无。

最安全的方法是剥离:

'{-4, 205, 10746}'.strip("{}")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM