Python öğrenmeye çalışıyorum. Muhtemelen çok basit bir soruda takıldım. Günlerdir uğraşıyorum ama çözemedim. Acaba konu hakkında bilgisi olan biri yardımcı olabilir mi?
Soru şu;
a = [1, 5, 6]
b = [0, 2, 7]
c = sirali_birlestir(a, b)
print(c)
# [0, 1, 2, 5, 6, 7] yazmalı ama hangi kodlarla? Listeyi önce birleştirip sıralamak dışında bir çözüm arıyorum. Bir ondan bir ondan seçim yapacak şekilde.
Python'da liste birleştirme ile ilgili
7
●128
- 24-01-2023, 13:27:47Kimlik doğrulama veya yönetimden onay bekliyor.Bu problemi çözmek için Python'da "heapq" kütüphanesini kullanabilirsiniz. "heapq.merge()" fonksiyonu, iki veya daha fazla sıralı iterable'i birleştirir ve sıralı bir iterable olarak geri döndürür. Aşağıdaki örnekte gösterildiği gibi kullanabilirsiniz:
import heapq
a = [1, 5, 6]
b = [0, 2, 7]
c = list(heapq.merge(a, b))
print(c)
# [0, 1, 2, 5, 6, 7] - 24-01-2023, 13:30:22Üyeliği durdurulduseherylmz adlı üyeden alıntı: mesajı görüntüle
- 24-01-2023, 17:20:09Algoritma mantığını öğrenmek istiyorum. O yüzden bahsettiğiniz yöntemleri kullanmadan algoritma kurarak nasıl yapabilirim demek için buraya yazdım. Onlarca kaynak okudum ama farklı listelerden seçim yapıp sıralı tek liste haline getiren bir çözüm bulamadım. Yardımlarınız için tekrar teşekkür ederim.
- 24-01-2023, 18:05:07seherylmz adlı üyeden alıntı: mesajı görüntüle
a = [1, 5, 6] b = [0, 2, 7] c = list() for x in a: c.append(x) for y in b: c.append(y) c.sort() print(c)
ama diyorsan sort da kullanılmayacak o zaman önce listeyi kontrol edip mevcut değerin büyük küçük olma haline göre yerine koymalısın saçma ama belki yardımcı olur diye onu da ekledim aşağıya
a = [1, 5, 6] b = [0, 2, 7] c = list() for x in a: c.append(x) for y in b: c.append(y) for z in range(len(c)): for v in range(z + 1, len(c)): if c[z] > c[v]: c[z], c[v] = c[v], c[z] print(c)