2016-09-06 47 views
-2

我怎麼能在任何字符之前和任何字符之前拆分字符串。 E.g:如何在任何字符前後分割字符串?

x = '846a12' 

我怎麼會輸出:

z = ['846','a','12'] 

在這種情況下,問題是我已經提到了我的功能特定的字符(特定字符:「A」在上面的例子)。如果輸入是不同的字符(假設:'b'),我的功能失敗。我該如何處理隨機字符?

感謝。

+3

'「846a12'.partition(」 A')'? –

+0

你的例子與「任何角色」有什麼關係?這個例子應該變成'846','a','12','b','55'等'846a12b55'嗎?你應該正確地顯示你想要的一般情況。 –

回答

0

可以使用itertools解決這些類型的問題,那裏有隔板的出現了多次的情況下,例如:

>>> import itertools as it 
>>> [''.join(x) for _, x in it.groupby('846a12', key=lambda c: c=='a')] 
['846', 'a', '12'] 
+0

真的嗎?與評論中的其他兩種解決方案相比,這是一個糟糕的解決方案。它的可讀性要差得多,而且我願意打賭它效率也不高。 –

+0

同意,如果只有一個分隔符出現,並且我不確定它與基於're'的解決方案相比是否可怕。 – AChampion

+0

不,鏈接的重複數據處理多次出現的分隔符。 –