2010-11-25 101 views
0

我想用"},{"作为分隔符来分割一个字符串。我尝试了各种各样的东西,但都没有工作。Python中的字符串分隔符

string="2,1,6,4,5,1},{8,1,4,9,6,6,7,0},{6,1,2,3,9},{2,3,5,4,3 " 

拆分它弄成这个样子:

2,1,6,4,5,1 
8,1,4,9,6,6,7,0 
6,1,2,3,9 
2,3,5,4,3 

string.split("},{")作品在Python的控制台,但如果我写一个Python脚本中做此操作不起作用。

+2

它没有任何意义,它在控制台上工作,但不在脚本中。你的脚本是怎样的?在python控制台上的 – 2010-11-25 00:36:53

+0

>>> string =“{{2,4,5},{1,9,4,8​​,6,6,7},{1,2,3},{2,3 }}“ >>> string。分裂( “},{”) 甚至取代工作正常,但当但在脚本中同样的事情它没有 高清convert2list(串): 字符串= string.strip() 字符串=字符串[2: len(string)-2] .split(“},{”) – anupash 2010-11-25 00:45:51

回答

0

你能做到这一点的步骤:

  1. 斯普利特在逗号获得 “{...}” 字符串。
  2. 删除前后大括号。

它可能不是最Pythonic或高效,但它是一般和可行的。

11

您需要将string.split("},{")的结果分配给新的字符串。例如:

string2 = string.split("},{") 

我认为这就是您认为它在控制台工作但不在脚本中的原因。在控制台中它只是输出返回值,但是在脚本中你要确保使用返回的值。

2

您需要将return字符串返回给调用者。分配给string参数不会更改调用方的变量,因此这些更改将丢失。

def convert2list(string): 
    string = string.strip() 
    string = string[2:len(string)-2].split("},{") 

    # Return to caller. 
    return string 

# Grab return value. 
converted = convert2list("{1,2},{3,4}") 
0

我正在从的脚本变量的形式在控制台输入....

所以,当我正在输入为{{2,4,5},{1 ,9,4,8​​,6,6,7},{1,2,3},{2,3}},它在arg [1]中没有正确地出现,所以分裂基本上分裂为空串...

0

如果我从运行一个脚本文件下面的代码(在Python 2.7):

字符串=“2,1,6,4,5,1},{8,1 ,4,9,6,6,7,0},{6,1,2,3,9},{2,3 ,5,4,3 “

打印string.split(”},{“)

然后我得到的输出是:

['2,1,6,4 ,5,1','8,1,4,9,6,6,7,0','6,1,2,3,9','2,3,5,4,3']

及以下的代码也能正常工作:

string="2,1,6,4,5,1},{8,1,4,9,6,6,7,0},{6,1,2,3,9},{2,3,5,4,3 " 
def convert2list(string): 
    string=string.strip() 
    string=string[:len(string)].split("},{") 
    print string 
convert2list(string)