Lambda anonim fonksiyonunu ve map ve reduce gömülü fonksiyonlarını kullanma

Aşağıda satış elemanlarının soyadı ve isimleri ile toplam yaptıkları satış miktarları verilmiştir. Dizilerin karşılıklı elemanları birbirine karşılık gelmektedir. Yani Ayse soyadı Aygün, Ece soyadı Çiçek’dir. soyad=[‘Aygun’,‘Çiçek’,‘Deniz’,‘Atar’,‘Dener’,‘Yılmaz’] toplam_satis_miktari = [[Ayse, 3,6,7],[‘Ece’, 5,2,4],[‘Arya’, 6,5],[‘Ali’, 3],[‘Can’,5,7,9,11],[‘Aybar’,2,3]]

Lambda anonim fonksiyonunu ve map ve reduce gömülü fonksiyonlarını kullanarak aşağıdaki diziyi elde etmenizi istiyorum. Aşağıdaki dizinin her elemanının 3. elemanları, toplam satış miktarlarını göstermektedir.

Elde etmeniz gereken sonuc = [[Ayse Aygun’, 16], [‘Ece Çiçek’, 11], [‘Arya Deniz’, 11], [‘Ali Atar’, 3], [‘Can Dener’, 32], [‘Aybar Yılmaz’, 5]]

şeklinde bir sorum var ama nedense elde edilmesi gereken sonucu alamıyorum yardımcı olabilecek var mı?

Merhaba, aşağıdaki kodları inceleyebilirsiniz.

from functools import reduce

soyad = ["Aygun", "Çiçek", "Deniz", "Atar", "Dener", "Yılmaz"]
toplam_satis_miktari = [
    ["Ayse", 3, 6 ,7],
    ["Ece", 5 ,2, 4],
    ["Arya", 6, 5],
    ["Ali", 3],
    ["Can", 5, 7, 9, 11],
    ["Aybar", 2, 3]
]

print(
    list(
        map(
            lambda i: [
                toplam_satis_miktari[i][0], 
                soyad[i], 
                reduce(lambda x, y: x + y, toplam_satis_miktari[i][1:])
            ], 
            range(len(toplam_satis_miktari))
        )
    )
)

Ayrıca kodlara kod görünümü nasıl kazandılır öğrenmek için aşağıdaki bağlantıyı ziyaret edebilirsiniz.

Ne deniyorsun, nasil bir sonuc aliyorsun?

1 Beğeni

Aşağıdaki dizinin herbir elemanının uzunluğu 2.


>>> from functools import reduce
>>> soyad = ["Aygun", "Çiçek", "Deniz", "Atar", "Dener", "Yılmaz"]
>>> toplam_satis_miktari = [
    ["Ayse", 3, 6 ,7],
    ["Ece", 5 ,2, 4],
    ["Arya", 6, 5],
    ["Ali", 3],
    ["Can", 5, 7, 9, 11],
    ["Aybar", 2, 3]
]
>>> list(reduce(None, [map(lambda i: i, [[satışlar[0] + " " + soyad, sum(satışlar[1:])] for satışlar, soyad in zip(toplam_satis_miktari, soyad)])]))
[['Ayse Aygun', 16], ['Ece Çiçek', 11], ['Arya Deniz', 11], ['Ali Atar', 3], ['Can Dener', 32], ['Aybar Yılmaz', 5]]