2010-11-25 99 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)