Python kullanarak bir karakter dizisinden bir karakter nasıl silinir

Örneğin bir dize var. ÖRNEK.

Ortadaki karakteri, yani M karakterini nasıl kaldırabilirim? Koda ihtiyacım yok. Bilmek istiyorum:

  • Python'da karakter dizileri herhangi bir özel karakterle biter mi?
  • Hangisi daha iyi bir yoldur - ortadaki karakterden başlayarak her şeyi sağdan sola kaydırmak VEYA yeni bir karakter dizisi oluşturmak ve ortadaki karakteri kopyalamamak?
Çözüm

Python'da stringler değişmezdir, bu nedenle yeni bir string oluşturmanız gerekir. Yeni stringi nasıl oluşturacağınıza dair birkaç seçeneğiniz var. Eğer 'M' harfini göründüğü her yerden kaldırmak istiyorsanız:

newstr = oldstr.replace("M", "")

Eğer ana karakteri ortadan kaldırmak istiyorsanız:

midlen = len(oldstr)/2   # //2 in python 3
newstr = oldstr[:midlen] + oldstr[midlen+1:]

Dizelerin özel bir karakterle bitip bitmediğini sormuştunuz. Hayır, bir C programcısı gibi düşünüyorsunuz. Python'da karakter dizileri uzunluklarıyla saklanır, bu nedenle \0 da dahil olmak üzere herhangi bir bayt değeri bir karakter dizisinde görünebilir.

Yorumlar (3)

Bu muhtemelen en iyi yoldur:

original = "EXAMPLE"
removed = original.replace("M", "")

Karakterleri değiştirmek gibi şeyler için endişelenmeyin. Çoğu Python kodu çok daha yüksek bir soyutlama seviyesinde yer alır.

Yorumlar (3)

Belirli bir pozisyonu değiştirmek için:

s = s[:pos] + s[(pos+1):]

Belirli bir karakteri değiştirmek için:

s = s.replace('M','')
Yorumlar (3)