我想知道是否有一種方法使用.split()函數將字符串拆分爲2個參數。如何使用2參數拆分字符串 - python 3.5
例如,在數學方程:
的x^2 + 6X-9
是否有可能使用+和分裂它 - ? 因此,它結束爲列表: [x^2,6x,9]
我想知道是否有一種方法使用.split()函數將字符串拆分爲2個參數。如何使用2參數拆分字符串 - python 3.5
例如,在數學方程:
的x^2 + 6X-9
是否有可能使用+和分裂它 - ? 因此,它結束爲列表: [x^2,6x,9]
我認爲你需要使用雷克斯解決你的問題。
如果你給出了一個例子的解決方案,我會派上用場。 – Tobias
@Tobias我對python一無所知。在Java中,這個問題很容易通過正則表達式解決。 http://www.w3resource.com/python-exercises/re/python-re-exercise-47.php –
由於.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
正則表達式版本會大大縮短。
這將千方百計想讓你正在請求的問題
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/以更好地感受它們的工作方式。
非常感謝,我會給正則表達式前 – skeeto
'split()。split()'? – Tobias
不幸的是,響應 - AttributeError:'列表'對象沒有屬性'分裂',但感謝您的建議 – skeeto
啊哈,你當然是對的。爲什麼你堅持使用'split()'? – Tobias