Profilo di matteofulciniti

Nome matteofulciniti
Indirizzo email n/a
Messaggi11
  • Re: Creare copia di Lista di numeri per poterci lavorare sopra
    Forum >> Principianti
    Grazie, dopo un po' di giri sono arrivato anche io alla tua stessa conclusione.



    Ma a questo punto il mio dubbio rimane: non credevo che anche associando la lista iniziale ad una variabile x, e modificando una parte di questa lista, anche la lista originaria si modificasse...credevo che una volta associata la lista iniziale ad un'altra variabile, avessi creato una copia di essa.
  • Creare copia di Lista di numeri per poterci lavorare sopra
    Forum >> Principianti
    Ciao a tutti.



    Mi sono imbattuto in un problema apparentemente semplice, che mi sta facendo dannare.




    Ho una lista di numeri: L = [[1,2,3],[4,5,6,1]]




    Devo creare una Funzione che mi restituisca la stessa lista, con alla fine di ogni sottolista, la somma degli elementi TRANNE IL PRIMO.




    Ed è proprio qui il problema...o meglio, ho scoperto qualcosa di cui non sapevo nulla:




    Nel codice che ho creato, agisco cosî:




    - creo una lista provvisoria

    - tramite un ciclo for, scandisco la lista originale

    - quando "i" ad esempio, vale [1,2,3], rimuovo l'elemento in posizione 0

    - faccio la somma di cio che rimane

    - "appendo" la somma alla sottolista originaria ([1,2,3])




    La cosa che mi sta facendo impazzire è che scopro che ANCHE LA LISTA ORIGINALE è STATA MODIFICATA!!!

    La lista originale ora ha come prima sottolista [2,3,5]...quando ci dovrebbe essere anche 1!!!




    Come faccio a non modificarla??? (mi sembrava una cosa cosi banale che ho pensato che ci fosse un bug nel mio python...aiuto)





















  • Re: Dizionari: valore piu ricorrente
    Forum >> Principianti
    Ti ringrazio molto!
  • Dizionari: valore piu ricorrente
    Forum >> Principianti
    Salve a tutti.
    Non riesco a venire a capo di un esercizio che mi chiede di individuare da una lista, l'elemento che viene ripetuto piu volte, e una volta fatto, mi si chiede di creare un dizionario che abbia come chiave questo elemento, e come valore il numero di volte che viene ripetuto.




    Ora, fino alla creazione del dizionario con gli elementi della lista e le loro ripetizioni nella lista, tutto ok...il problema è che da questo dizionario non so come prendere l'elemento che ripeta piu volte, per metterlo in un altro dizionario (che è quello che alla fine mi serve).




    prodottiDifettatiPerGiorno = ['pane','latte','pane','ottone','latte','pane']
    def terzoEsercizio(prodottiDifettatiPerGiorno):
    medie = {}
    for i in prodottiDifettatiPerGiorno:
    if i not in medie:
    medie = []
    medie = 1
    else:
    medie += 1
    return medie



    in questo modo mi si forma il dizionario con le chiavi e i valori, ma, come detto prima...è il secondo step che mi frega! come faccio ad isolare {"pane":3} e a riportarlo in un altro dizionario???



  • Re: Esercizio rompicapo Liste
    Forum >> Principianti
    TROVATOOOOO!!!




    def EstraiDieci(L):

    output = []

    for fisso in L:



    for i in L:



    if fisso + i == 10:



    output.append(fisso)

    output.append(i)

    L.remove(i)



    return output





    dopo un giorno di combattimenti...

    Ti ringrazio comunque per l'aiuto e per i suggerimenti!
  • Re: Esercizio rompicapo Liste
    Forum >> Principianti
    io invece farei una copia della lista in ingresso, estrarrei il primo elemento e cercherei nel resto se c'è il complemento a 10; se c'è, lo elimini e aggiungi i due alla lista di output. E così via finché la lista non è vuota.

    Prima di leggere la tua risposta avevo fatto una cosa simile, ossia ho "svuotato" tramite la funzione remove. Ma l'ho fatto direttamente sulla lista principale, senza creare una copia.





    def EstraiDieci(L):

    output = []

    for fisso in L:

    print("fisso=",fisso)

    for i in L:

    print("i=",i)

    if fisso + i == 10:



    output.append(fisso)

    output.append(i)

    L.remove(i)

    L.remove(fisso)

    return output






    il risultato è che, ipotizzando la lista [3,5,7,5,2,8,11], mi da [3,7,5,5]...non capisco dove siano finiti 2 e 8!



  • Re: Esercizio rompicapo Liste
    Forum >> Principianti
    Ho trovato! mi serve un modo per far si che quando "fisso" è uguale, o meglio, nella stessa posizione di "i", si ignorino, ossia il ciclo for deve andare avanti senza considerare questa situazione....come faccio?
  • Re: Esercizio rompicapo Liste
    Forum >> Principianti
    questo è un altro codice che forse mi avvicina un po' di piu al risultato...ma ripete troppe volte i numeri nella lista...




    def EstraiDieci(L):

    output = []

    for fisso in L:

    for i in L:

    if fisso + i == 10:

    output.append(fisso)

    output.append(i)

    return output



  • Re: Esercizio rompicapo Liste
    Forum >> Principianti
    dove la x è in rosso, è perchè ci sono le parentesi quadre...non so perchè non le visualizza.
    ah ovviamente ho indentato tutto correttamente, non come visualizzare qui.





    --- Ultima modifica di matteofulciniti in data 2018-08-30 17:32:26 ---
  • Re: Esercizio rompicapo Liste
    Forum >> Principianti
    devo trovare un modo per scorrere la lista (quindi ciclo for) e per sommare pian piano tutti i numeri della lista, prima al primo, poi al secondo, poi al terzo ecc..elemento della lista.
    Avevo abbozzato una cosa del genere ma non funziona.

    def estraiDieci(L):
     	output = []
     	x = 0     #mi serve per tenere "fermo" l'elemento al quale sommo via via gli altri elementi della lista.
     	while x <= len(Lista):    #gli chiedo di iterare il ciclo finche il numero "fermo" al quale sommo tutti gli altri non arriva ad essere l'ultimo della lista
     		for i in Lista:
     			if  i + Lista[x] == 10:
     			output.append(Lista[x])
     			output.append(i)
     			x += 1    #Qui ad esempio mi va in loop, probabilmente perchè il ciclo for finisce prima che x sia arrivata ad essere uguale a len(Lista)...ma non mi vengono in mente soluzioni alternative...
     return  output
    [c'è un tasto apposta per il codice nella toolbar -- Nd㎝]


    --- Ultima modifica di matteofulciniti in data 2018-08-30 17:30:59 ---

    --- Ultima modifica di ㎝ in data 2018-08-30 17:47:04 ---