Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2023-24 loggatevi e attivatelo nella vostra pagina dei corsi preferiti. A quel punto il corso appare nel menù personale cliccando sul proprio avatar. Per i materiali degli anni precedenti seguite lo stesso metodo.

To join the Programming/Lab 2023-24 course, log-on and select it on the my courses page. It will appear on the personal menu of your avatar. For earlier years use the same method.

trasformare la lista es.1 homework

M
Matt_Ruggiero (2380 points)
16 39 45
in Es1 by (2.4k points)
ho praticamente finito il codice del primo esercizio tuttavia non so come  far si che la lista "ls" al termine della funzione venga modificata. ho provato nella funzione a inserire un ls=[codice che modifica la lista]

ma senza fare return ls non si modifica. viceversa se inserisco return ls il tester mi da errore poichè la funzione ritorna una lista non chiesta nella consegna. qualcuno sa come fare?
757 views
closed

2 Answers

Best answer
edoardo (7090 points)
19 52 67
by (7.1k points)

Per eliminare i valori all'interno della lista puoi scegliere due vie:

  • ls.remove(valore) : in questo modo elimini il valore dalla lista. Ad esempio ls = [1, 2, 3], eseguendo ls.remove(3) eliminerai il numero 3 all'interno di ls;
  • del ls[indice] : stessa cosa di sopra solamente con l'indice e con la funzione del. Ad esempio prendendo ls = [1, 2, 3] il numero 3 ha come indice 2. Usando del ls[2] eliminerai il valore 3.

In questo modo puoi modificare la lista e non dovrai returnarla. In console ti basterà digitare ls e la vedrai modificata. Spero ti sia chiaro, se così non fosse domanda pure laugh

M
Matt_Ruggiero (2380 points)
16 39 45
by (2.4k points)
grazie proverò ad usare queste funzioni
LeonardoEmili (35740 points)
14 65 155
by (35.7k points)
Quoto edoardo. Anch'io ho fatto così.
P
Powner (5600 points)
36 68 85
by (5.6k points)
Ma perché è sbagliato invece eguagliare ls a una nuovaLista creata appositamente?
ls=nuovaLista #riga precedente al return della funzione
edoardo (7090 points)
19 52 67
by (7.1k points)
Non credo sia sbagliato, però più che altro è inutile. A noi viene chiesto di modificare ls e di creare una nuova lista contenente i numeri primi dentro ls.
Per cui l'unica lista che dovresti creare è quella contenente i numeri primi, e creare una lista = ls, perlomeno a me, non è stato necessario. Non che sia sbagliato!
P
Powner (5600 points)
36 68 85
by (5.6k points)
In realtà io ho provato e modifica la variabile solo a livello locale, a livello globale ls rimane quella data. E non capisco perché
edoardo (7090 points)
19 52 67
by (7.1k points)
Uhm, strano a me l'ha sempre modificata, anche con degli errori. Prova a modificarla manualmente localmente e poi prova a vedere se nel globale resta la stessa
A
AndreaBolzoni (280 points)
1 2 5
by (280 points)
Anche io ho utilizzato il metodo ls.remove, ma mi chiedevo, se gli elementi da eliminare nella lista sono più di uno, ovviamente, ripeto ls.remove(valore) tutte le volte che mi serve per eliminare gli elementi che devo togliere. Ma è giusto concettualmente o ci sono altri modi più "corretti"?
francesco.dev (33560 points)
22 51 129
by (33.6k points)
Semplicemente passi ls come parametro della funzione e la sovrascrivi!