Python Programming

Python’da Liste Birleşimlerinde Ustalaşmak

Spread the love

Python, listeleri birleştirmek için, tekrarlı girdileri saklayıp saklamayacağınıza ve sıranın önemli olup olmadığına bağlı olarak çeşitli yollar sunar. Bu kılavuz, liste birleşimlerini verimli bir şekilde işlemek için çeşitli teknikleri ele almaktadır.

İçerik Tablosu

Tekrarlı Elemanlarla Birleşim

Tüm elemanları ve tekrarlarını koruyarak iki listeyi birleştirmenin en basit yolu + operatörünü kullanmaktır:


list1 = [1, 2, 2, 3]
list2 = [3, 4, 2]

union_list = list1 + list2
print(union_list)  # Çıktı: [1, 2, 2, 3, 3, 4, 2]

Sıralı Birleşim

Sıralı bir birleşim için, + operatörünü sorted() fonksiyonuyla birleştirin:


list1 = [1, 2, 2, 3]
list2 = [3, 4, 2]

union_list = sorted(list1 + list2)
print(union_list)  # Çıktı: [1, 2, 2, 2, 3, 3, 4]

Tekrarlı Olmayan Elemanlarla Birleşim

Tekrarlı olmayan bir birleşim oluşturmak için kümeler kullanın:


list1 = [1, 2, 2, 3]
list2 = [3, 4, 2]

union_set = set(list1) | set(list2)  # veya set(list1).union(list2)
union_list = list(union_set)  # Gerekirse tekrar listeye dönüştürün
print(union_list)  # Çıktı: [1, 2, 3, 4] (sıra değişebilir)

Kümeler otomatik olarak tekrarları kaldırır. Oluşturulan listenin eleman sırasının orijinal listelerdekiyle aynı olmayabileceğini unutmayın.

Çoklu Listelerin Birleşimi

İkiden fazla liste için, küme yaklaşımı verimliliğini korur:


list1 = [1, 2, 3]
list2 = [3, 4, 5]
list3 = [5, 6, 1]

union_set = set(list1) | set(list2) | set(list3)
union_list = list(union_set)
print(union_list)  # Çıktı: [1, 2, 3, 4, 5, 6] (sıra değişebilir)

#Daha ölçeklenebilir çözüm reduce kullanarak:
from functools import reduce
union_list = list(reduce(lambda x,y: x | y, [set(l) for l in [list1, list2, list3]]))
print(union_list) # Çıktı: [1, 2, 3, 4, 5, 6] (sıra değişebilir)

reduce fonksiyonu, birçok liste için daha özlü ve ölçeklenebilir bir çözüm sunar. Eleman sırasının korunmayabileceğini unutmayın; sıra önemliyse sorted() fonksiyonunu kullanın.

Bir yanıt yazın

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