ayırıcının son oluşumuna göre dizeyi 2'ye ayır


100

Bir ayırıcının son oluşumuna bağlı olarak dizeyi 2 parçaya ayırmak için python'da yerleşik bir işlev olup olmadığını bilmek istiyorum.

örneğin: "abc, d, e, f" dizesini, ayırıcıdan ayırdıktan sonra "," olarak düşünün, çıktının şu şekilde olmasını istiyorum

"abc, d, e" ve "f".

İstenen çıktıyı elde etmek için dizeyi nasıl değiştireceğimi biliyorum, ancak python'da herhangi bir yerleşik işlev olup olmadığını bilmek istiyorum.

Yanıtlar:


119

Kullanın rpartition(s). Tam olarak bunu yapar.

Ayrıca kullanabilirsiniz rsplit(s, 1).


11
Tam olarak değil: "abc, d, e, f" .rpartition (',') -> ('abc, d, e', ',', 'f')
Vanuan

@Vanuan, KESİNLİKLE bu aslında. Ayırıcıyı bir nedenden ötürü de döndürür: str.rpartition (sep) Dizeyi ayırmanın son oluşumunda böl ve ayırıcıdan önceki bölümü, ayırıcının kendisini ve ayırıcıdan sonraki bölümü içeren bir 3-tuple döndür . Ayırıcı bulunamazsa, iki boş dizeyi ve ardından dizenin kendisini içeren bir 3-tuple döndürün.
Petar Ivanov

23
rsplit(s, 1)ve rpartition(s)çıktı farklı, itiraf etmelisin.
Vanuan


54

Bir dizeyi ayırıcının son oluşumuna göre şu şekilde bölebilirsiniz rsplit:

Ayırıcı dizeyle ayrılmış (sağdan başlayarak) dizedeki kelimelerin bir listesini döndürür.

Son virgülle bölmek için:

>>> "a b c,d,e,f".rsplit(',', 1)
['a b c,d,e', 'f']
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.