Python String Manipulation

Python’da Etkin Alt Dize Arama

Spread the love

Python, bir dizenin alt dize içerip içermediğini belirlemek için birkaç verimli yol sunar. Bu makale, işlevselliklerini karşılaştırarak ve belirli ihtiyaçlarınız için en iyi yaklaşımı seçmenize yardımcı olarak, üç yaygın yöntemi ele almaktadır: in operatörü, str.find() yöntemi ve str.index() yöntemi.

İçerik Tablosu

in Operatörü

in operatörü, alt dize varlığını kontrol etmek için en basit ve en okunabilir çözümü sunar. Alt dize bulunursa True, bulunmazsa False döndürür. Bu, yalnızca bir alt dizenin varlığını bilmeniz, konumunu değil, bilmeniz gerektiğinde idealdir.


ana_dize = "Bu bir örnek dizedir."
alt_dize = "örnek"

if alt_dize in ana_dize:
    print(f"'{alt_dize}' alt dizisi dizenin içinde mevcut.")
else:
    print(f"'{alt_dize}' alt dizisi dizenin içinde mevcut değil.")

str.find() Yöntemi

str.find() yöntemi daha ayrıntılı bir yaklaşım sunar. Bulunursa alt dizenin ilk oluşumunun başlangıç indeksini, bulunmazsa -1 döndürür. Bu, alt dizenin varlığını kontrol etmenize ve konumunu belirlemenize olanak tanır. Ayrıca büyük/küçük harfe duyarlıdır.


ana_dize = "Bu bir örnek dizedir."
alt_dize = "örnek"

index = ana_dize.find(alt_dize)

if index != -1:
    print(f"'{alt_dize}' alt dizisi {index} indeksinde bulundu.")
else:
    print(f"'{alt_dize}' alt dizisi dizenin içinde mevcut değil.")

str.index() Yöntemi

str.find()‘a benzer şekilde, str.index() alt dizenin başlangıç indeksini döndürür. Bununla birlikte, alt dize bulunmazsa, bir ValueError özel durumu oluşturur. Bu, alt dizenin mevcut olduğundan emin olmadığınız sürece, potansiyel hatayı açıkça işlemek istemediğiniz sürece, basit varlık kontrolleri için daha az uygundur.


ana_dize = "Bu bir örnek dizedir."
alt_dize = "örnek"

try:
    index = ana_dize.index(alt_dize)
    print(f"'{alt_dize}' alt dizisi {index} indeksinde bulundu.")
except ValueError:
    print(f"'{alt_dize}' alt dizisi dizenin içinde mevcut değil.")

Doğru Yöntemi Seçme

En uygun yöntem, belirli gereksinimlerinize bağlıdır:

  • Basit varlık kontrolleri için, in operatörü en verimli ve okunabilir olanıdır.
  • Alt dizenin konumunu bulmak ve olası yokluğunu zarif bir şekilde işlemek için str.find() tercih edilir.
  • str.index()‘i yalnızca alt dizenin mevcut olduğundan emin olduğunuzda ve ValueError özel durumunu işlemeniz gerektiğinde kullanın. Aksi takdirde gereksiz karmaşıklık ekler.

Üç yöntemin de büyük/küçük harfe duyarlı olduğunu unutmayın. Büyük/küçük harfe duyarsız aramalar için, kontrolü gerçekleştirmeden önce hem ana dizede hem de alt dizede .lower() yöntemini kullanmayı düşünün.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir