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

Do you need help?

Notice Board

Dividere lista in sottolista senza usare dizionari

r
rosario.salerno (3010 points)
15 30 44
in Programmare in Python by (3.0k points)
closed by
Salve a tutti, devo dividere una lista in 3 sottoliste per un esercizio, in modo da creare delle colonne da 3 elementi ciascuna. Usando il comando lst.splitlines() riesco a dividere le stringhe nel numero di elementi che desidero, ma avrei bisogno di creare una sottolista per ogni 3 elementi. So che ciò è relativamente facile da ottenere usando i dizionari, ma l'esercizio mi chiede di svolgerlo partendo da una stringa.
4.0k views
closed with the note: answered

2 Answers

Best answer
giorgio.belli (10140 points)
24 74 98
by (10.1k points)
selected by
Ciao non so se ho ben capito a te serve una cosa di questo genere [[a,b,c][d,e,f][g,h,i]] partendo da una Stringa?
r
rosario.salerno (3010 points)
15 30 44
by (3.0k points)
Faccio un esempio così mi esprimo meglio. ho una stringa :
'''a;b;c
d;e;f'''
utilizzando lst.splitlines(';') mi ritorna una lista ['a','b','c','d','e','f'].  ora vorrei dividere la lista in due liste ['a','b','c'] ['d','e','f'].
giorgio.belli (10140 points)
24 74 98
by (10.1k points)
ok allora il modo piu semplice è iterare con un for facebdo uno step. Provo con un esempio in pseudocodice
for i in range(lunghezza_stringa//3)
    slice(i,i+3)
in questo modo parti dai multipli di 3 e ti prendi i 3 successivi.
Ad ogni ciclo puoi salvarti la lista in una variabile. Poi vedi tu.
Spero di essere stato chiaro :)
r
rosario.salerno (3010 points)
15 30 44
by (3.0k points)
Sei stato molto chiaro, adesso ho capito. Grazie mille.
split (8700 points)
21 59 79
by (8.7k points)
se usi le quadre coi : puoi prendere una lista da un indice (incluso) fino all'altro (escluso)...tipo lista [1:4] prende gli elementi di lista con indice 1,2 e 3 (non lo 0 e non il 4), se le liste sono piccole puoi farlo "a mano"
r
rosario.salerno (3010 points)
15 30 44
by (3.0k points)
è per una funzione, quindi il numero di liste che mi servono non è già specificato.  Anche usando append e creando nuove liste, potrebbero servirmene 3 come 7 o 10,  l'unica constante è che ogni lista contiene 3 elementi.
split (8700 points)
21 59 79
by (8.7k points)
non è il numero di liste che conta ma il numero dei valori nella lista, se è fisso, o se comunque lo conosci sempre, ed è "piccolo" puoi farlo a mano... se ad esempio fosse 6 la lunghezza della lista come nel tuo esempio diventerebbe "nuova lista"= [lista fino a 3 escluso,da 3 6 escluso (quindi fino a 5, quindi sei posizioni)] a  9 , ogni lista nel ciclo diventerebbe [lista fino a 3 escluso,da 3 a 6 escluso, da 6 a 9...] dicevo, se il numero è breve (di elementi delle liste non delle liste ) puoi scriverlo così a mano, se fosse elevato ti servirebbe una funzione