|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: May 2004
Messaggi: 419
|
[python] Lista dinamica
Problema:
Ho un file di testo da cui estrarre una serie di dati che sono dati in questo formato preciso: dato01 dato02 dato03 dato11 dato12 dato13 dato21 dato22 dato33 ........ daton1 daton2 daton3 Questi sono da memorizzare in oggetti appositi che vanno inseriti in una lista dinamica la quale deve poter essere ordinata a volte su un tipo di dato a volte su un altro (mettendo che ogni colonna rappresenti un tipo di dato diverso). Inoltre in questa lista sono previsti inserimenti, cancellazioni (in quasivoglia posizione, naturalmente) e successivi riordinamenti. Detto che si lavora in modalità rigorosamente testuale e senza uso di alcun database (per motivi inutili a spiegarsi) in pratica si lavora in memoria e al termine delle operazioni può anche sparire tutto, la domanda è semplice: usando Python quali sono le strutture dati migliori (diciamo da un punto di vista prestazionale) per memorizzare ogni singolo elemento e per costruire la lista? Grazie.
__________________
--In Siberia non sono tutte gnocche... ma tante si... |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Aug 2003
Città: Barletta (BA)
Messaggi: 939
|
La lista è la struttura più potente di Python: è una sequenza quindi gli elementi conservano il loro ordine e sono indicizzati, supporta l'indirizzamento e la selezione tramite indici, può crescere e decrescere dinamicamente, può contenere qualsiasi oggetto, supporta l'annidamento a più livelli e così via...praticamente ci fai di tutto
![]() Per i dati usa semplicemente le stringhe
__________________
In a world without fences, who needs Gates? Power by: Fedora 8 - Mac OS X 10.4.11 |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Concordo: la lista appare lo strumento migliore.
Comunque una struttura dati esattamente uguale a quella riportata sopra non mi convince molto: io non chiamerei così i miei tipi di dato. ![]() Vediamo se verrà fornito qualche esempio reale del problema, così da poter modellare delle soluzioni su misura. ![]()
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Sep 2000
Messaggi: 886
|
Forse intendeva dire che a 4 a 3 vanno raggruppati... quindi direi che una lista di sole stringhe non va bene... classi ad hoc?
__________________
1986/2008 - 22 anni di rabbia cancellati in un giorno. Adesso passeranno altri 22 anni.. ![]() |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: May 2004
Messaggi: 419
|
Esatto, i dati vanno raggruppati. Ok, per le liste, me le sto studiando (non sarebbe lavoro mio ma tant'è). Per quel che riguarda i dati ho ovviamente generalizzato. Sono questi:
nome1 - cognome1 - matricola1 (1 è la riga del file di testo che riporta i dati) nome2 - cognome2 - matricola2 ..... ecc... devono essere inseriti nella lista ovviamente in modo che ogni elemento della lista raggruppi i dati contenuti in ciascuna riga. E' possibile creare quindi una lista nella quale ogni elemento sia una classe che contenga appunto nome+cognome+matricola e in modo che sia possibile ordinare su ciascuno dei 3 campi, a richiesta? Grazie e scusate se non sono chiaro ma è dalle 7 di stamattina (ed è domenica ![]()
__________________
--In Siberia non sono tutte gnocche... ma tante si... |
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Aug 2003
Città: Barletta (BA)
Messaggi: 939
|
Quote:
![]() Puoi usare solo liste: Codice:
datiMatricola = [ [nome1, cognome1, matricola1], [nome2, cognome2, matricola2] ] Codice:
datiMatricola = [ { 'nome' : nome1, 'cognome' : cognome1, 'matricola' : matricola1}, { 'nome' : nome2, 'cognome' : cognome2, 'matricola' : matricola2} ] ![]()
__________________
In a world without fences, who needs Gates? Power by: Fedora 8 - Mac OS X 10.4.11 |
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Concordo. Per ordinare la lista in base all'apposito campo c'è poi il metodo sort delle liste che prevede sia specificata (opzionalmente) la chiave da utilizzare per l'ordinamento.
![]()
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: May 2004
Messaggi: 419
|
Interessante... davvero interessante.... ci provo e se ho problemi mi faccio vivo. Grazie.
![]()
__________________
--In Siberia non sono tutte gnocche... ma tante si... |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:55.