Bir sayı dizisindeki en çok geçen sayıyı(Modunu) bulma

Merhabalar bir sayı dizisinde en çok geçen sayıyı bulmak için bir algoritma geliştirdim. Bu kodu nasıl daha iyi yazabilirim? Bu sayede daha fazla bir bilgi edinmiş olabileceğimi düşünüyorum.

Kod:

def Mod(list1):

    tekrar = dict()

    for i in list1:

        en_cok = 1

        

        if i in tekrar:

            en_cok = tekrar[i] + 1

            tekrar[i] = en_cok

        

        else:

            tekrar[i] = en_cok

    maximum = max(tekrar.values())

    for i in tekrar.items():

        if i[1] == maximum:

            mod = i[0]

            return mod

Şöyle yazabiliriz:

def mod(iterable):
    tekrar = {}
    for i in iterable:
        tekrar.setdefault(i, 0)
        tekrar[i] += 1
    return max(tekrar, key=tekrar.__getitem__)

Aradığınız fonksiyon standart kütüphanede de var:

>>> import statistics
>>> statistics.mode([1, 2, 3, 2])
2
>>> 
4 Beğeni

import statistics
n = int(input("Kaç adet sayı gireceksiniz? “))
sayilar = []
for i in range(n):
sayi = int(input(f”{i+1}. sayıyı giriniz: "))
sayilar.append(sayi)

“”“mod = max(set(sayilar), key = sayilar.count) # mod hesaplaması
print(“Listenin modu:”, mod)”""

print("yazdığınız listenin modu ",statistics.mode(sayilar),“sayısıdır.”)

Fonksiyonsuz, statistic kütüphanesinden yararlanarak, böyle bir şey yazabildim hocam .
Gerçi konuyu hortlatmış oldum ama birilerinin işine yarayabilir diye umuyorum.