{"id":4812,"date":"2017-03-11T18:04:34","date_gmt":"2017-03-11T17:04:34","guid":{"rendered":"http:\/\/www.valcon.it\/python\/?p=4812"},"modified":"2025-12-17T08:40:59","modified_gmt":"2025-12-17T07:40:59","slug":"moda","status":"publish","type":"post","link":"https:\/\/www.valcon.it\/python\/moda\/","title":{"rendered":"Moda"},"content":{"rendered":"\n<p>Problemi<\/p>\n\n\n\n<ul>\n<li>Se nessun valore si ripete?<\/li>\n\n\n\n<li>Se ci sono due valori con la stessa frequenza massima?<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">1<\/h2>\n\n\n\n<p>Da Python 3.4: statistics.<strong>mode<\/strong>(z)<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\nimport statistics\n\nNUMERI = &#x5B;...]\nm = statistics.mode(NUMERI)\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">2<\/h2>\n\n\n\n<p><strong>Se l&#8217;intervallo di valori \u00e8 noto, [0,&nbsp; 9]<\/strong><\/p>\n\n\n\n<ul>\n<li>utilizza una lista di 10 contatori (inizializzati a zero)<\/li>\n\n\n\n<li>visita la lista aggiornando i contatori<\/li>\n\n\n\n<li>individua il contatore pi\u00f9 grande<\/li>\n\n\n\n<li><strong>la moda \u00e8 l&#8217;indice del contatore pi\u00f9 grande<\/strong><\/li>\n<\/ul>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\ndef moda(lista):\n    contatori = &#x5B;0,0,0,0,0,0,0,0,0,0]\n    for x in lista:\n        contatori&#x5B;x] += 1\n\n    max_pos = 0\n    max_val = contatori&#x5B;0]\n    for i in range(1, 10):\n        x = contatori&#x5B;i]\n        if(x &gt; max_val):\n            max_val = x\n            max_pos = i\n\n    return max_pos\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Soluzione 3<\/h2>\n\n\n\n<p>Se l&#8217;intervallo di valori non \u00e8 noto<\/p>\n\n\n\n<p>Osserva<\/p>\n\n\n\n<ol>\n<li>ordina la lista<\/li>\n\n\n\n<li>utilizza un contatore <em>temporaneo<\/em><\/li>\n\n\n\n<li>conta quante volte compare ciascun valore<\/li>\n\n\n\n<li>memorizza il valore e la lunghezza della sequenza pi\u00f9 lunga<\/li>\n\n\n\n<li>se nessun elemento compare almeno due volte restituisce <em>errore (None)<\/em>.<\/li>\n<\/ol>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\nLISTA=sorted(NUMERI)\n\nx     =LISTA&#x5B;0]\nmoda  =-1       # moda\nmodan =-1       # moda - numerosit\u00e0\nmodat =x        # moda temporanea\nmodatn=1        # moda temporanea - numerosit\u00e0\n\nfor i in range(1, len(LISTA)):\n    x=LISTA&#x5B;i]\n    if(x == modat):\n        modatn += 1\n    else:\n        if(modatn &gt; modan):\n            moda =modat\n            modan=modatn\n        modat =x\n        modatn=1\n\nif(modan &lt; 2): \n    moda=None\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Soluzione 4<\/h2>\n\n\n\n<p>Evita di trattare il primo valore in modo speciale<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\nLISTA=sorted(NUMERI) \n\nmoda  =-1  # moda \nmodan =-1  # moda - numerosit\u00e0 \nmodat =-1  # moda temporanea \nmodatn=-1  # moda temporanea - numerosit\u00e0 \n\nfor x in LISTA: \n    if(x == modat): \n        modatn += 1 \n    else: \n        if(modatn &gt; modan): \n            moda =modat \n            modan=modatn \n        modat =x \n        modatn=1 \nif(modan &lt; 2): \n    moda=None\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Soluzione 5<\/h2>\n\n\n\n<p>Per non ordinare la lista utilizza un <em>dizionario<\/em> (<strong>dict<\/strong>)<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\ndef valore(coppia):\n    return coppia&#x5B;1]\n\ndef moda(lista):\n    d={}\n    for x in lista:\n        d&#x5B;x]=d.get(x,0)+1\n    lista=list(d.items()) \n    lista.sort(key=valore, reverse=True)\n\u00a0   if(lista&#x5B;0]&#x5B;1] &gt;= 2):\n        return lista&#x5B;0]&#x5B;0]\n\nlista1=&#x5B;1,8,0, 1,  1,9,2, 8] \nlista2=&#x5B;1,8,0,10,100,9,2,80] \nprint(moda(lista1))          # 1 \nprint(moda(lista2))          # None\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Soluzione 6<\/h2>\n\n\n\n<p>Utilizza un <em>dizionario migliorato<\/em>: <strong>Counter<\/strong><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\nimport collections\n\nNUMERI=&#x5B;...]\n\ncounter = collections.Counter(NUMERI)\nmoda    = counter.most_common(1)&#x5B;0]&#x5B;0]\n\nprint(moda)\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>Problemi 1 Da Python 3.4: statistics.mode(z) 2 Se l&#8217;intervallo di valori \u00e8 noto, [0,&nbsp; 9] Soluzione 3 Se l&#8217;intervallo di valori non \u00e8 noto Osserva Soluzione 4 Evita di trattare il primo valore in modo speciale Soluzione 5 Per non ordinare la lista utilizza un dizionario (dict) Soluzione 6 Utilizza un dizionario migliorato: Counter<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[41],"tags":[60,38],"_links":{"self":[{"href":"https:\/\/www.valcon.it\/python\/wp-json\/wp\/v2\/posts\/4812"}],"collection":[{"href":"https:\/\/www.valcon.it\/python\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.valcon.it\/python\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.valcon.it\/python\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.valcon.it\/python\/wp-json\/wp\/v2\/comments?post=4812"}],"version-history":[{"count":56,"href":"https:\/\/www.valcon.it\/python\/wp-json\/wp\/v2\/posts\/4812\/revisions"}],"predecessor-version":[{"id":30120,"href":"https:\/\/www.valcon.it\/python\/wp-json\/wp\/v2\/posts\/4812\/revisions\/30120"}],"wp:attachment":[{"href":"https:\/\/www.valcon.it\/python\/wp-json\/wp\/v2\/media?parent=4812"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.valcon.it\/python\/wp-json\/wp\/v2\/categories?post=4812"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.valcon.it\/python\/wp-json\/wp\/v2\/tags?post=4812"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}