Python'da Liste Kavşağı

List Intersection Python



Python'da çeşitli veri türlerini depolamak için birçok nesne değişkeni bulunur. NS liste bu değişkenlerden biridir ve farklı ihtiyaçlar için farklı türde verileri depolayabilir. Bazen, programlama amaçları için çoklu listelerden ortak, yaygın olmayan veya hem yaygın hem de yaygın olmayan veri öğelerini bulmamız gerekir. Python, Python kümeleri için bu tür görevleri gerçekleştirebilen birkaç yerleşik işlev ve işleç içerir. Birden çok listeden ortak veri bulmaya liste kesişimi denir, ancak birden çok listeden ortak veri öğelerini bulmak için kümeler gibi listeler için bir operatör veya yerleşik işlev yoktur. Bu eğitim size Python'da listeleri nasıl kesiştireceğinizi gösterecektir.

kavşak

Bu eğitime başlamadan önce kavşak kavramı açıklanacaktır. Aşağıda iki tanesi örnek olarak verilmiştir:







Liste1= [4, 7, 2. 3, 9, 6, on bir]
Liste2= [6, 5, 1, yirmi, 9, 7, 4, 3]

Kavşağı uyguladıktan sonra, sonuç muhtemelen List3 adlı başka bir listede saklanırsa, aşağıdaki verileri içerecektir.



Liste3= [4, 6, 7, 9]

List3'ün grafiksel gösterimi aşağıda gösterilmiştir:







Örnek 1: Listeleri set() Yöntemi ile Kesişme

Aşağıdaki örnek, aşağıdakileri kullanarak iki listeyi nasıl kesiştirebileceğinizi gösterir. Ayarlamak() yöntem ve & Şebeke. Burada list1 ve list2 adlı iki liste bildirilir. Bu listelerin her ikisi de sayısal değerler içerir. Üçüncü liste, liste1 ve liste 2'nin küme aracılığıyla kümeye dönüştürülmesiyle oluşturulur. () yöntemini kullanarak kesişimi uygulamak ve & Şebeke. Ardından, üç listenin değerleri yazdırılır.

#!/usr/bin/env python3
# list1 tanımla
liste1= [22, 8, Dört beş, on bir, 3. 4, 9, yirmi, 7]
# list2 tanımla
liste2= [12, 9, yirmi, 78, 53, 8, 2, 30,31]
# list1 ve list2'yi kesiştirerek list3 oluşturun
liste3= liste(Ayarlamak(liste1)&Ayarlamak(liste2))
# Listeyi yazdır1
Yazdır('liste1'in değerleri: ',liste1)
# Listeyi yazdır2
Yazdır('Liste2'nin değerleri: ',liste2)
# Listeyi yazdır3
Yazdır('Liste1 ve list2'yi kestikten sonra list3'ün değerleri: ',liste3)

Çıktı



Komut dosyasını çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Her iki listede de üç değer ortaktır. Bu değerler 8, 9 ve 20'dir ve üçüncü listenin içeriğinde gösterilir.

Örnek 2: Listeleri kesişim() Yöntemi ile Kesişme

Liste nesnesinin iki liste arasındaki kesişim değerlerini bulması için doğrudan, yerleşik bir yöntem yoktur. Ancak, kümenin, adında yerleşik bir yöntemi vardır. kavşak() , kümeler arasındaki ortak değerleri bulmak için. adlı özel bir işlev kavşakListeleri() , iki liste arasındaki ortak değerleri bulmak için aşağıdaki komut dosyasında tanımlanmıştır. Bu kümenin bir sınırlaması, yalnızca sayısal verileri içerebilmesidir. Bir liste değişkeni, sayısal, boole vb. dahil olmak üzere çeşitli veri dizesi türlerini içerebilir. Kodda, liste1 ve liste2 ve metin dahil tüm dize verilerini içerir. Komut dosyası, aralarındaki tüm ortak dize ve sayısal değerleri yazdıracaktır. liste1 ve liste2 .

#!/usr/bin/env python3

# İki listenin kesişimini döndürmek için işlevi tanımlayın
tanımkesişme Listeleri(liste1,liste2):
dönüş Ayarlamak(liste1).kavşak(liste2)

# list1 tanımla
liste1= ['Merhaba','7','8','10','2']
# list2 tanımla
liste2= ['8','3. 4','Merhaba','2','yirmi bir','1',10]
''' Saklamak için özel işlevi çağırın
list1 ve list2'nin kesişim sonucu
listeye3'''

liste3=kesişme Listeleri(liste1,liste2)
# Listeyi yazdır1
Yazdır('liste1'in değerleri: ',liste1)
# Listeyi yazdır2
Yazdır('Liste2'nin değerleri: ',liste2)
# Listeyi yazdır3
Yazdır('Liste1 ve list2'yi kestikten sonra list3'ün değerleri: ',liste3)

Çıktı

Komut dosyasını çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Burada iki liste arasındaki ortak değerler '2', '8' ve 'Merhaba'dır.

Örnek 3: Döngü Yöntemi ile Kesişen Listeler

Önceki iki örnek, yerleşik işlevleri kullanan liste kesişimini gösterir. Aşağıdaki örnek, herhangi bir yerleşik işlevi olmayan liste kesişimini gösterir. Bu, döngü kullanılarak elde edilebilir. Komut dosyasında iki metin verisi listesi bildirilmiştir. NS için arasındaki ortak metin değerlerini bulmak için burada döngü kullanılır. liste1 ve liste2, ve değişkende saklanan, liste3 . Ardından, bu üç liste değişkeninin değerleri yazdırılır.

#!/usr/bin/env python3

# list1 tanımla
liste1= ['Farhan','Abir','Akaş','Meena','Mazer']
# list2 tanımla
liste2= ['Meena','Moyna','Nobel','Yakın','Abir','Farheen']
# For döngüsünü kullanarak kesişimi bulun ve sonucu list3'e kaydedin
liste3= [değeriçindeğeriçindeliste1Eğerdeğeriçindeliste2]

# Listeyi yazdır1
Yazdır('liste1'in değerleri: ',liste1)
# Listeyi yazdır2
Yazdır('Liste2'nin değerleri: ',liste2)
# Listeyi yazdır3
Yazdır('Liste1 ve list2'yi kestikten sonra list3'ün değerleri: ',liste3)

Çıktı

Komut dosyasını çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Burada, iki listenin ortak metin değerleri 'Abir' ve 'Meena.'

Örnek 4: Basit ve İç İçe Listeleri filter() Yöntemiyle Kesişme

Aşağıdaki örnek, basit bir liste ile iç içe geçmiş bir liste arasındaki kesişimi gösterir. NS filtre() yöntem ve lambda işlev, komut dosyasında list1 ve list2 arasındaki kesişimi yürütmek için kullanılır. Bir liste, liste öğeleri olarak bir veya daha fazla liste içerdiğinde, listeye iç içe liste denir. Buraya, liste1 basit bir listedir ve liste2 iç içe bir listedir, oysa liste3 kesişim değerlerini içerir liste1 ve liste2 .

#!/usr/bin/env python3

# Basit bir liste tanımlayın
liste1= [22, 8, Dört beş, on bir, 3. 4, 9, yirmi, 7]
# Yuvalanmış bir liste tanımlayın
liste2= [[12, 9, yirmi], [78, on bir, 53, 8], [2, 30, 31, Dört beş]]
# list1 ve list2'yi filter() kullanarak keserek list3 oluşturun
liste3= [liste(filtre(lambdan: niçindeliste1,liste)) içinlisteiçindeliste2]

# Listeyi yazdır1
Yazdır('liste1'in değerleri: ',liste1)
# Listeyi yazdır2
Yazdır('Liste2'nin değerleri: ',liste2)
# Listeyi yazdır3
Yazdır('Liste1 ve list2'yi kestikten sonra list3'ün değerleri: ',liste3)

Çıktı

Komut dosyasını çalıştırdıktan sonra aşağıdaki çıktı görünecektir. list2 değişkeni, liste öğeleri olarak üç liste daha içerir. Sonuç olarak, liste2'nin bu üç alt listesi ile liste1 arasındaki kesişimi gösterir.

Çözüm

Liste kesişimi, çok sayıda liste öğesi içeren listeler arasındaki ortak değerleri bulmanın kullanışlı bir yoludur. Bu öğreticide, yerleşik işlevlerle ve yerleşik işlevler olmadan liste kesişimi gerçekleştirme yöntemleri gösterilmektedir. Bu makaleyi okuduktan sonra, liste kesişimi kavramı açık olmalı ve bu öğreticide gösterilen herhangi bir yolu izleyerek komut dosyanızda liste kesişimini uygulayabilmelisiniz.