Bir sınırlayıcının ilk oluşumunda bir dizeyi ayırmanın en iyi yolu ne olurdu?İlk oluşumda bölme
Örneğin: İlk mango
üzerine
"123mango abcd mango kiwi peach"
bölme almak için: the docs itibaren
"abcd mango kiwi peach"
Bir sınırlayıcının ilk oluşumunda bir dizeyi ayırmanın en iyi yolu ne olurdu?İlk oluşumda bölme
Örneğin: İlk mango
üzerine
"123mango abcd mango kiwi peach"
bölme almak için: the docs itibaren
"abcd mango kiwi peach"
:
str.split([sep[, maxsplit]])
Dizgideki sözcüklerin bir listesini, sınırlayıcı dizesi olarak sep kullanarak döndür. maxsplit verilirse, en fazla maxsplit bölünmeler yapılır (bu nedenle, liste en fazla
maxsplit+1
öğeye sahip olacaktır). . O oluşumunu olur çünkü "alırsınızIndexError: list index out of range"
nedenle
-1
dizede değil ...s.split('mango', 1)[-1]
:
s.split('mango', 1)[1]
>>> s = "123mango abcd mango kiwi peach"
>>> s.split("mango", 1)
['123', ' abcd mango kiwi peach']
>>> s.split("mango", 1)[1]
' abcd mango kiwi peach'
Benim için daha iyi bir yaklaşım olduğunu herhangi bir zarara yol açmayacaktır. Olayların sayısı zaten bir taneye ayarlanmıştır.
İşte bir itertools
yaklaşım:
s = "123mango abcd mango kiwi peach"
"".join(it.islice(it.dropwhile(lambda x: x != " ", s), 1, None))
#'abcd mango kiwi peach'
Ayırıcı nedir? Ayrıldığını söylüyorsun, ama ilk kısım nerede? Örneğiniz hiç belli değil! – GaretJax
Üzgünüm, sınırlayıcıyı söylemeyi unutma! – Acorn