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
●126
- 24-01-2023, 13:23:01
>>> a = [1, 5, 6] >>> b = [0, 2, 7] >>> c = a+b >>> c.sort() >>> print(c) [0, 1, 2, 5, 6, 7]
İki listeyi "+" operatörü ile birleştirip .sort() methodu ile sıralayabilirsiniz. - 24-01-2023, 13:25:22Bunu biliyorum. Özellikle birleştirme yapmadan diye özellikle belirtmiştim. Yine de teşekkürler
- 24-01-2023, 13:27:47Bu 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:22seherylmz 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)
- 24-01-2023, 20:24:00Çok teşekkür ederim. Aradığım çözüm buydu. Çok sağolun, vaktinizi aldım.