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
- Sıralı Birleşim
- Tekrarlı Olmayan Elemanlarla Birleşim
- Çoklu Listelerin Birleşimi
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.