Bir Python Dizisinin Bir Alt Dizi İçerip İçermediğini Kontrol Etmenin 7 Yolu

Dizelerle çalışmak Python'da yaygın bir görevdir. Genellikle bir dizgenin başka bir dizi içerip içermediğini anlamanız gerekir.

Bir Python dizesinin bir alt dize içerip içermediğini kontrol etmenin en basit yöntemleri arasında 'in' operatörü, find() işlevi ve index() yöntemi bulunur. Daha karmaşık senaryolar, düzenli ifadelerle veya Pandas gibi harici bir kitaplıkla çözülebilir.

Bu makale size şunları gösterir:

  • dört basit yöntem

  • iki daha karmaşık normal ifade işlevi

  • Pandalar kitaplığını kullanan bir yöntem

Söz dizimi ve kullanım örnekleri aracılığıyla her tekniği öğreneceksiniz. Ayrıca, farklı gereksinimler için hangi yöntemin en iyi olduğuna dair ipuçları alacaksınız.

Başlayalım!

İçindekiler

Python Dizelerinin Temelleri

Python'da bir dize, metin tabanlı verileri temsil etmek için kullanılan bir karakter dizisidir. Harfleri, rakamları, sembolleri ve boşlukları içerebilirler.

Python'un yerleşik veri türlerinden biridir ve aşağıdakilerden biri kullanılarak oluşturulabilir:

  • tek tırnak (' ')

  • ikili alıntı (" ")

  • üçlü tırnak (“' ”' veya “”” “””)

Dizeler dizine eklenir, bu da belirli karakterlere dizin numaralarına başvurarak erişebileceğiniz anlamına gelir. Başlangıç ​​indeksi 0'dır, yani bir dizgenin ilk karakterinin indeksi 0'dır, ikincisinin indeksi 1'dir, vb.

Ardından, alt dizileri kontrol etmenin yollarına bakıyoruz.

Alt Dizileri Kontrol Etmenin En Basit 4 Yolu

Python, daha büyük bir dizede belirli bir alt dizenin olup olmadığını kontrol etmek için birçok yol sağlar. Bazıları diğerlerinden daha karmaşıktır. En temel kontroller için en basit yöntemler in operatörü veya üç dizi yönteminden biridir.

  1. operatörde

  2. bul() yöntemi

  3. index() yöntemi

  4. say() yöntemi

Bir Python Dizisinin Bir Alt Dizi İçerip İçermediğini Kontrol Etmenin 7 Yolu

1. Operatörde

Python'daki 'in' operatörü, bir dizenin başka bir dize içinde olup olmadığını kontrol etmenin basit ve sezgisel bir yoludur. Bu operatör üyeliği kontrol eder ve bir boole değeri döndürür:

  • Alt dize ana dize içinde bulunursa doğrudur

  • Değilse yanlış

İşte bazı örnek kod:

s = "Hello, world!"
sub = "world"
result = sub in s
print(result)  # Output: True

'in' operatörü büyük/küçük harfe duyarlıdır. Bu, küçük ve büyük harfleri farklı olarak ele aldığı anlamına gelir. Yukarıdaki kod “hello” alt dizesini bulmayacağı için operatör false döndürür.

Büyük/küçük harfe duyarlı olmayan bir kontrol gerçekleştirmek istiyorsanız, kontrolü gerçekleştirmeden önce hem ana dizgiyi hem de alt dizgiyi aynı büyük/küçük harfe dönüştürebilirsiniz:

s = "Hello, world!"
sub = "hello"
result = sub.lower() in s.lower()
print(result)  # Output: True

in operatörünün dezavantajı, ana dizge içindeki alt dizginin konumunu sağlamamasıdır. Bunun için bu bölümde başka bir yönteme ihtiyacınız olacak. Okumaya devam etmek…

2. Bul() Yöntemi

find () yöntemi, alt dizenin göründüğü ilk dizini veya alt dize bulunmazsa -1'i döndürür.

Bir s dizesinde find() yöntemini çağırırsınız ve sub dizesini argüman olarak iletirsiniz . İşte bir örnek:

s = "Hello, world!"
sub = "world"
index = s.find(sub)

if index != -1:
     print("Found at index:", index)  # Output: Found at index: 7
else:
     print("Not found")

Aramanızı sınırlamak için isteğe bağlı olarak bir başlangıç ​​veya bitiş dizini belirtebilirsiniz. Bu yöntemin dezavantajı, ilk oluşumda durmasıdır.

3. Index() Yöntemi

index () yöntemi, alt dize bulunamadığında bir ValueError oluşturması dışında find() yöntemine oldukça benzer . Bu, aramayı bir Dene/Hariç Tut bölümüne sarmanız gerektiği anlamına gelir.

index() yöntemini kullanmak için , onu bir s dizgesinde çağırın ve alt dizgiyi argüman olarak iletin.

s = "Hello, world!"
sub = "world"

try: 
     index = s.index(sub)
     print("Found at index:", index)  # Output: Found at index: 7
except ValueError:
     print("Not found")

Bu yöntem ayrıca metin içindeki ilk alt dizede durur.

4. Count() Yöntemi

.count () yöntemi, orijinal dizide bir alt dizenin kaç kez oluştuğunu sayar. Bu sayıyı temsil eden bir tamsayı döndürür. Alt dizi ana dizide bulunmazsa, 0 değerini döndürür.

İşte “Merhaba dünya!” metninde “o” harfini arayan basit bir örnek:

s = "Hello, world!"
sub = "o"
print(s.count(sub))  # Output:2

Dizeleri Normal İfadelerle Eşleştirmenin 2 Yolu

Normal ifadeleri (regex) kullanmak , önceki bölümdeki yöntemlerden biraz daha karmaşıktır. Ancak, uğraştığınız metni aramak ve analiz etmek için size daha fazla seçenek sunarlar.

re modülündeki en kolay yollardan ikisi şunlardır:

  1. aramak()

  2. hepsini bul()

Bir Python Dizisinin Bir Alt Dizi İçerip İçermediğini Kontrol Etmenin 7 Yolu

1. yeniden Ara()

re modülündeki search () işlevi, belirli bir dizgede bir kalıp arar ve bir eşleşme bulunursa bir eşleşme nesnesi döndürür. Aksi takdirde, None döndürür .

Varsayılan olarak, işlev büyük/küçük harfe duyarlıdır. Büyük/küçük harf duyarlılığını önlemek için re.IgnoreCase bayrağını kullanabilirsiniz .

Aşağıda, dizenin bulunup bulunmadığına bağlı olarak koşullu ifadeler kullanan basit bir örnek verilmiştir:

import re
pattern = "python"
text = "I love Python programming"
match = re.search(pattern, text, re.IGNORECASE)

if match: 
     print("Pattern found")
else:
     print("Pattern not found")

Bu yöntemin ilk eşleşmeyi bulduğunu ve ardından aramayı durdurduğunu unutmayın. Tüm eşleşmeleri bulmak istiyorsanız, bu listedeki sıradaki sizin için.

2. re.Findall()

Bu yöntem, belirli bir dizide bir arama modelinin tüm oluşumlarını bulur ve tüm eşleşmeleri içeren bir liste döndürür.

Bu örnek, bir dizide bir veya daha fazla rakamla eşleşen bir kalıp kullanır. “123, 456, 789” metin dizisi üç rakam dizisi içerir.

import re 

pattern = "d+" 
text = "123, 456, 789" 
numbers = re.findall(pattern, text) 

print(numbers)

Bu, örnek koddan alınan yanıttır: ['123', '456', '789'].

Pandalarla Alt Dizeleri Nasıl Bulursunuz?

Bir Python Dizisinin Bir Alt Dizi İçerip İçermediğini Kontrol Etmenin 7 Yolu

Pandas, Python için popüler bir açık kaynaklı veri analizi ve manipülasyon kitaplığıdır. Yapılandırılmış verileri işlemek ve analiz etmek için gereken veri yapılarını ve işlevleri sağlar.

Pandalar tarafından sağlanan birincil veri yapılarından biri DataFrame'dir. Bu çok yönlü veri yapısını, bir diziyi diğerinin içinde kontrol etmek için kullanabilirsiniz.

Pandas'ın avantajı, diğer programlama dillerinde kapsamlı bir şekilde yazmanız gereken kod paketleri sağlamasıdır . Spesifik olarak, içerir işlevinin içinde çok fazla güç bulunur.

Pandalarda str.contains() İşlevi

str.contains () yöntemi, bir DataFrame sütununun dizesinde belirtilen bir modelin veya normal ifadenin bulunup bulunmadığını test eder.

Aşağıda, kitaplığı içe aktaran ve bir dize listesi içinde bir dize arayan bir örnek verilmiştir:

import pandas as pd

# Creating a sample DataFrame 
data = {'fruits': ['apple', 'banana', 'cherry', 'watermelon', 'orange']} 
df = pd.DataFrame(data) 

# Searching for substrings in the 'fruits' column 
has_an = df['fruits'].str.contains(pat='an', regex=False)

# Filtering the DataFrame based on the search results 
filtered_df = df[has_an] 
print(filtered_df)

Bu örnekte, 'meyveler' sütununda 'an' alt dizesini arıyoruz ve DataFrame'i buna göre filtreliyoruz. Çıktı şöyle olurdu:

  • 1 muz

  • 4 portakal

Pandaların neler yapabileceğine dair daha fazla örnek arıyorsanız, bu videoyu izleyin:

Python'da Belirli Bir Yöntem Seçmek İçin İpuçları

Yöntemin seçimi büyük ölçüde görevinizin özel gereksinimlerine bağlıdır.

İşte bu makaleden öğrendiğiniz yöntemlerden birini seçmeniz için dört neden ve ayrıca bu blogda başka bir yerde öğreneceğiniz bir bonus yöntem:

  1. işleme hızı

  2. Alt dizenin yerini bilmeniz gerekir

  3. Alt dizenin oluşum sayısını bilmeniz gerekir

  4. Karmaşık kalıpları eşleştirmek istiyorsunuz

  5. Metin analizi yapma

1. İşlem Hızı

Bir Python Dizisinin Bir Alt Dizi İçerip İçermediğini Kontrol Etmenin 7 Yolu

Bir dize içinde bir alt dize olup olmadığını bilmek istiyorsanız, 'in' 0 işlemcisi en iyi seçimdir.

Bu amaç için basit, sezgisel ve hızlıdır. Ancak, alt dizenin konumu veya sayısı hakkında bilgi sağlamaz.

2. Alt Dizinin Konumu

Bir dize içindeki bir alt dizenin ilk geçtiği konumu bilmeniz gerekiyorsa .find() veya .index() yöntemlerini kullanın .

Her ikisi de alt dizenin ilk geçtiği dizinin dizinini döndürür.

3. Alt Dizi Sayısı

Bir dizgede bir alt dizgenin kaç kez geçtiğini öğrenmek istediğinizde .count() yöntemini kullanın .

4. Karmaşık Modeller

Karmaşık kalıpları eşleştirmeniz veya büyük/küçük harfe duyarlı olmayan aramalar yapmanız gerekiyorsa, normal ifadeler en esnek olanıdır. re.search () işlevi, basit alt dizelerin ötesinde kalıpları işleyebilir ve büyük/küçük harfe duyarlı olmayan aramaları kolayca gerçekleştirebilir.

Bununla birlikte, normal ifadeler, basit alt dize kontrolleri için gereğinden fazla olabilir ve kullanımı ve bakımı daha yavaş ve daha karmaşık olabilir.

5. Metin Analizi Gerçekleştirme

Textblob kitaplığıyla nasıl çalışacağınızı gösteren Python'daki metin analizi hakkındaki makalemize göz atın .

Konuşmanın bölümlerini kontrol etmek için .tags işlevini veya bir belgede sıklıkla bir arada geçen sözcükleri bulmak için .ngram işlevini kullanabilirsiniz .

Son düşünceler

Bir kelime veya dize nesnesinin başka bir kelimede bulunup bulunmadığını kontrol etmek için yedi yöntem öğrendiniz. Bunlara üyelik işleçleri, yerleşik işlevler, regex ve Pandas işlevleri dahildir.

Her yöntem bazı durumlar için doğrudur, ancak hepsi için doğru değildir. Python programlama dilinde ustalaşırken bu makaleyi bir kopya kağıdı olarak kullanın ve dize analizi göreviniz için en iyi çözümü kullanın.

Unutmayın, herkese uyan tek bir yöntem yoktur. Her yaklaşımın kendi avantajları ve tuhaflıkları vardır, bu nedenle tarzınıza veya çözmeye çalıştığınız belirli soruna uyanı seçmekten çekinmeyin. Günün sonunda, Python tamamen hayatınızı kolaylaştırmakla ilgilidir, bu yüzden esnekliğini kucaklayın!

Leave a Comment

Excel Hücrelerini Metne Sığdırma: 4 Kolay Çözüm

Excel Hücrelerini Metne Sığdırma: 4 Kolay Çözüm

Excel hücrelerini metne sığdırmak için güncel bilgileri ve 4 kolay çözümü keşfedin.

Bir Excel Dosyasının Boyutu Nasıl Küçültülür – 6 Etkili Yöntem

Bir Excel Dosyasının Boyutu Nasıl Küçültülür – 6 Etkili Yöntem

Bir Excel Dosyasının Boyutunu Küçültmek için 6 Etkili Yöntem. Hızlı ve kolay yöntemler ile verilerinizi kaybetmeden yer açın.

Pythonda Self Nedir: Gerçek Dünyadan Örnekler

Pythonda Self Nedir: Gerçek Dünyadan Örnekler

Python'da Self Nedir: Gerçek Dünyadan Örnekler

Rde Bir RDS Dosyası Nasıl Kaydedilir ve Yüklenir

Rde Bir RDS Dosyası Nasıl Kaydedilir ve Yüklenir

R'de bir .rds dosyasındaki nesneleri nasıl kaydedeceğinizi ve yükleyeceğinizi öğreneceksiniz. Bu blog aynı zamanda R'den LuckyTemplates'a nesnelerin nasıl içe aktarılacağını da ele alacaktır.

İlk N İş Günü Tekrar Ziyaret Edildi – Bir DAX Kodlama Dili Çözümü

İlk N İş Günü Tekrar Ziyaret Edildi – Bir DAX Kodlama Dili Çözümü

Bu DAX kodlama dili eğitiminde, GENERATE işlevinin nasıl kullanılacağını ve bir ölçü başlığının dinamik olarak nasıl değiştirileceğini öğrenin.

LuckyTemplatesda Çok İş Parçacıklı Dinamik Görsel Tekniği Kullanarak Öngörüleri Sergileyin

LuckyTemplatesda Çok İş Parçacıklı Dinamik Görsel Tekniği Kullanarak Öngörüleri Sergileyin

Bu eğitici, raporlarınızdaki dinamik veri görselleştirmelerinden içgörüler oluşturmak için Çok Kanallı Dinamik Görseller tekniğinin nasıl kullanılacağını kapsayacaktır.

LuckyTemplatesda İçeriği Filtrelemeye Giriş

LuckyTemplatesda İçeriği Filtrelemeye Giriş

Bu yazıda, filtre bağlamından geçeceğim. Filtre bağlamı, herhangi bir LuckyTemplates kullanıcısının başlangıçta öğrenmesi gereken en önemli konulardan biridir.

LuckyTemplates Çevrimiçi Hizmetindeki Uygulamaları Kullanmak İçin En İyi İpuçları

LuckyTemplates Çevrimiçi Hizmetindeki Uygulamaları Kullanmak İçin En İyi İpuçları

LuckyTemplates Apps çevrimiçi hizmetinin çeşitli kaynaklardan oluşturulan farklı raporların ve içgörülerin yönetilmesine nasıl yardımcı olabileceğini göstermek istiyorum.

Fazla Mesai Kâr Marjı Değişikliklerini Analiz Edin - LuckyTemplates ve DAX ile Analitik

Fazla Mesai Kâr Marjı Değişikliklerini Analiz Edin - LuckyTemplates ve DAX ile Analitik

LuckyTemplates'da ölçü dallandırma ve DAX formüllerini birleştirme gibi teknikleri kullanarak kâr marjı değişikliklerinizi nasıl hesaplayacağınızı öğrenin.

DAX Studioda Veri Önbellekleri İçin Materyalleştirme Fikirleri

DAX Studioda Veri Önbellekleri İçin Materyalleştirme Fikirleri

Bu öğreticide, veri önbelleklerini gerçekleştirme fikirleri ve bunların DAX'ın sonuç sağlama performansını nasıl etkilediği tartışılacaktır.