2017-04-04 20 views
0

我想知道是否有一種方法使用.split()函數將字符串拆分爲2個參數。如何使用2參數拆分字符串 - python 3.5

例如,在數學方程:

的x^2 + 6X-9

是否有可能使用+和分裂它 - ? 因此,它結束爲列表: [x^2,6x,9]

+0

'split()。split()'? – Tobias

+0

不幸的是,響應 - AttributeError:'列表'對象沒有屬性'分裂',但感謝您的建議 – skeeto

+0

啊哈,你當然是對的。爲什麼你堅持使用'split()'? – Tobias

回答

0

我認爲你需要使用雷克斯解決你的問題。

+0

如果你給出了一個例子的解決方案,我會派上用場。 – Tobias

+0

@Tobias我對python一無所知。在Java中,這個問題很容易通過正則表達式解決。 http://www.w3resource.com/python-exercises/re/python-re-exercise-47.php –

0

由於.split()返回一個列表,你必須再次迭代返回的列表。該函數(如下)可讓split任意次數,但正如另一個答案中提到的那樣,您應該考慮使用re(正則表達式)模塊。

from itertools import chain 


def split_n_times(s, chars): 
    if not chars: 
     # Return a single-item list if chars is empty 
     return [s] 

    lst = s.split(chars[0]) 
    for char in chars: 
     # `chain` concatenates iterables 
     lst = chain(*(item.split(char) for item in lst)) 

    return lst 

正則表達式版本會大大縮短。

1

這將千方百計想讓你正在請求的問題

def multisplit(text, targets): 
    input = [] 
    output = [text] 
    for target in targets: 
     input = output 
     output = [] 
     for text in input: 
      output += text.split(target) 
    return output 

學習正則表達式可能會幫你做你打算做什麼。玩弄[+-][^+-]*以上https://regex101.com/以更好地感受它們的工作方式。

+0

非常感謝,我會給正則表達式前 – skeeto