Python iki listeyi karşılaştırmanın birden fazla yolunu sunar. Karşılaştırma, listedeki veri öğelerinin aynı olup olmadığına bakılmaksızın listedeki başka bir veri öğesiyle karşılaştırılarak kontrol edilmesi işlemidir.
list1 - [11, 12, 13, 14, 15] list2 - [11, 12, 13, 14, 15] Output - The lists are equal
İki listeyi karşılaştırma yöntemleri aşağıda verilmiştir.
- cmp() işlevi
- set() işlevi ve == operatörü
- sort() işlevi ve == operatörü
- Collection.counter() işlevi
- azalt() ve harita() işlevi
cmp() işlevi
Python cmp() işlevi iki Python nesnesini karşılaştırır ve karşılaştırmaya göre -1, 0, 1 tamsayı değerlerini döndürür.
Not - Python 3.x sürümünde kullanılmaz.
set() işlevi ve == operatörü
Python ayarlamak() işlev öğelerin sırasına dikkat etmeden listeyi kümeye aktarın. Ayrıca listedeki veri öğelerini karşılaştırmak için eşittir operatörünü (==) kullanırız. Aşağıdaki örneği anlayalım.
Örnek -
list1 = [11, 12, 13, 14, 15] list2 = [12, 13, 11, 15, 14] a = set(list1) b = set(list2) if a == b: print('The list1 and list2 are equal') else: print('The list1 and list2 are not equal')
Çıktı:
The list1 and list2 are equal
Açıklama:
Yukarıdaki örnekte birbiriyle karşılaştırılacak iki listeyi beyan ettik. Bu listeleri set haline getirdik ve her bir elemanı == operatörü yardımıyla karşılaştırdık. Her iki listede de tüm öğeler eşittir, bu durumda blok yürütülür ve sonuç yazdırılırsa.
java dizesine karakter ekleme
== operatörlü sort() yöntemi
Python düzenlemek() Listeleri sıralamak için fonksiyon kullanılır. Aynı listenin elemanları aynı indeks konumundadır, bunun anlamı; listeler eşittir.
Not - sort() yönteminde, listeyi karşılaştırmadan önce sıraladığımız için liste öğelerini herhangi bir sırayla iletebiliriz.
Aşağıdaki örneği anlayalım -
Örnek -
import collections list1 = [10, 20, 30, 40, 50, 60] list2 = [10, 20, 30, 50, 40, 70] list3 = [50, 10, 30, 20, 60, 40] # Sorting the list list1.sort() list2.sort() list3.sort() if list1 == list2: print('The list1 and list2 are the same') else: print('The list1 and list3 are not the same') if list1 == list3: print('The list1 and list2 are not the same') else: print('The list1 and list2 are not the same')
Çıktı:
The list1 and list3 are not the same The list1 and list2 are not the same
Collection.counter() işlevi
Toplama modülü şunları sağlar: tezgah(), listeyi verimli bir şekilde karşılaştırır. Verileri sözlük formatında saklar ve listedeki öğelerin sıklığını sayar.
Not - Bu fonksiyonda listenin elemanlarının sırası önemli değildir.
Örnek -
import collections list1 = [10, 20, 30, 40, 50, 60] list2 = [10, 20, 30, 50, 40, 70] list3 = [50, 10, 30, 20, 60, 40] if collections.Counter(list1) == collections.Counter(list2): print('The lists l1 and l2 are the same') else: print('The lists l1 and l2 are not the same') if collections.Counter(list1) == collections.Counter(list3): print('The lists l1 and l3 are the same') else: print('The lists l1 and l3 are not the same')
Çıktı:
The lists list1 and list2 are not the same The lists list1 and list3 are the same
azalt() ve harita()
harita() işlev, bir işlevi ve yinelenebilir Python nesnesini (liste, tanımlama grubu, dize vb.) bağımsız değişken olarak kabul eder ve bir harita nesnesi döndürür. İşlev, listenin her öğesine uygulanır ve sonuç olarak bir yineleyici döndürür.
Yanında azaltmak() yöntem, verilen işlevi yinelenebilir nesneye yinelemeli olarak uygular.
Burada her iki yöntemi de bir arada kullanacağız. harita() işlev, işlevi (kullanıcı tanımlı veya lambda işlevi olabilir) her yinelenebilir nesneye uygulayacaktır ve azaltmak() işlevin özyinelemeli bir şekilde uygulanacağına dikkat edin.
Not - Reduc() fonksiyonunu kullanabilmek için functool modülünü içe aktarmamız gerekir.
Aşağıdaki örneği anlayalım.
Örnek -
import functools list1 = [10, 20, 30, 40, 50] list2 = [10, 20, 30, 50, 40, 60, 70] list3 = [10, 20, 30, 40, 50] if functools.reduce(lambda x, y: x and y, map(lambda a, b: a == b, list1, list2), True): print('The list1 and list2 are the same') else: print('The list1 and list2 are not the same') if functools.reduce(lambda x, y: x and y, map(lambda a, b: a == b, list1, list3), True): print('The list1 and list3 are the same') else: print('The list1 and list3 are not the same')
Çıktı:
The list1 and list2 are not the same The list1 and list3 are the same
Bu bölümde Python'da iki listeyi karşılaştırmanın çeşitli yöntemlerini ele aldık.