2011-02-10 153 views
1
a = string.split("Test Test2 Test3"," ") 

這將返回一個錯誤:string.split錯誤?蟒蛇

Message File Name Line Position  
Traceback    
    <module> C:\pyWiz.py 43  
AttributeError: 'module' object has no attribute 'split'     

是的,我進口的字符串模塊。 這是怎麼回事?

+0

你使用的是什麼版本的Python? – dfb 2011-02-10 23:59:37

+0

適用於Python 2.7。但是你也可以使用字符串方法。 – Keith 2011-02-11 00:00:01

回答

1

爲什麼不是"Test Test2 Test3".split()

0
a = "Test Test2 Test3".split(" ") 
6

使用:

a = 'Test Test2 Test3'.split(' ') 

(即方法的splitstr類型)。在2.x中已棄用string.split,並在3.x中退出。

1

string是您在查找類/類型對象str時的模塊。我建議這樣做雖然:

a = "Test Test2 Test3".split() 
0
>>> a = 'jetpack ferret pizza lawyer'.split() 
>>> a 
['jetpack', 'ferret', 'pizza', 'lawyer'] 

>>> b = 'jetpack ferret pizza lawyer' 
>>> b.split() 
['jetpack', 'ferret', 'pizza', 'lawyer'] 
>>> b 
'jetpack ferret pizza lawyer' 

>>> c = """very 
looooooooooooooooooooooong string  with trailing random whitespace """ 
>>> c = c.split() 
>>> c 
['very', 'looooooooooooooooooooooong', 'string', 'with', 'trailing', 'random', 'whitespace'] 

>>> d = 'dog;_cat;_fish;_'.split(';_') 
>>> d 
['dog', 'cat', 'fish', ''] 

的是要注意,大多數時候,你並不需要指定分隔符(可製成多發字符)。

如果我們簡化一下,不給任何分裂函數的參數可以刪除所有空格(即空格,製表符,換行符,返回值),並且這是一個首選的行爲來處理來自文件,shell等的輸入,特別是這種習慣用法的一個最常用的用法:硬編碼一串字符串,保存逗號和引號的惱人的輸入。

也知道你會在你的列表中得到空字符串,如果:

  • 輸入字符串結尾或您定義爲分隔符的一個或多個字符開頭(見我的最後一個例子)

  • 在你想要獲得的一組字符之間有多個分隔符