Forum >> Principianti >> Lista di 20 elementi

Pagina: 1

Buonasera,



Io ho difficolta con questo esercizio:




Ho una lista1 di 20 elementi ed una lista2 con diversi numeri all'interno ad esempio:




lista1=['e7','e4','e3','e16','e1','e5','e13','e17','e19','e6','e2','e10','e14','e12','e11','e8','e9','e18','e15','s20']




lista2=[5,3,2,4,1,6,7,8,12,15,17,11,10,20,19,14,16,13,9,18]




Dovrei tornare una lista3 che è la copia della lista2, ed inoltre devo eliminare tutti gli elementi della lista2, se nella lista1 appare con 'e'+str(i), quindi dalla lista2 dovrei eliminare tutti gli elementi tranne il numero 20



Questo è il mio codice ma non riesco a capire dove sbaglio



def prova(lista1,lista2):
clone_1[:] #creo una copia della lista1
clone_2 = lista2[:] #creo una copia della lista2 
for el in clone_1:
	for i,x in enumerate(clone_2):
		if el == 'e'+str(x):
				clone_2.remove(x)
				lista3=clone_2
return lista3














--- Ultima modifica di robotmat in data 2019-10-28 10:57:36 ---


--- Ultima modifica di robotmat in data 2019-10-28 11:12:41 ---
formatta il codice con il tasto "<>" per consentire anche a noi di capire quello che hai scritto
https://leanpub.com/capirewxpython : Capire wxPython, il mio libro
https://pythoninwindows.blogspot.com : Python in Windows, il mio blog e le mie guide
È tutto giusto, bravo !


def prova(lista1,lista2) :
    clone_1 = lista1[ : ] #creo una copia della lista1
    clone_2 = lista2[ : ] #creo una copia della lista2 
    for el in clone_1 :
        for i, x in enumerate(clone_2) :
            if el == 'e' + str(x) :
                clone_2.remove(x)
                lista3 = clone_2
    return lista3

lista1=['e7','e4','e3','e16','e1','e5','e13','e17','e19','e6','e2','e10','e14','e12','e11','e8','e9','e18','e15','s20']
lista2=[5,3,2,4,1,6,7,8,12,15,17,11,10,20,19,14,16,13,9,18]

print(prova(lista1, lista2))






È tutto giusto, bravo !


def prova(lista1,lista2) :
    clone_1 = lista1[ : ] #creo una copia della lista1
    clone_2 = lista2[ : ] #creo una copia della lista2 
    for el in clone_1 :
        for i, x in enumerate(clone_2) :
            if el == 'e' + str(x) :
                clone_2.remove(x)
                lista3 = clone_2
    return lista3

lista1=['e7','e4','e3','e16','e1','e5','e13','e17','e19','e6','e2','e10','e14','e12','e11','e8','e9','e18','e15','s20']
lista2=[5,3,2,4,1,6,7,8,12,15,17,11,10,20,19,14,16,13,9,18]

print(prova(lista1, lista2))


Ah ok perfetto non so perchè non mi dava il risultato giusto alla fine della funzione.
Grazie.




Su che libro studi?
Su che libro studi?
Apogeo la guida tascabile e sulle dispense che mi da il professore.



Ma se dovessi spostare le posizioni degli elementi all'interno della lista2 come potrei fare?




Esempio:




lista2=[2,5,4,7] >>>>> [5,4,7,2]



Fai una ricerca, scrivi il codice e postalo. Così vediamo come si fa.


Pagina: 1



Esegui il login per scrivere una risposta.