[Python] Liste collezioni, propietà

Pietro Battiston battiston a mail.dm.unipi.it
Sab 23 Feb 2008 22:46:54 CET


Alberto Aliberti ha scritto:
> Vorrei creare un tool per la generazione di statistiche sui database
> scacchistici. Da quello che ho capito , mi potrebbe essere utile
> lavorare con
> le "liste" di Python . Due domande :
> 1- Qual'è la massima estensione (lunghezza) di una lista di stringhe
> in Python ?

Penso che vada ben oltre la tua disponibilità di RAM per caricarcela: in
ogni caso, se vuoi fugare ogni dubbio, avvia l'interprete python e dai
il comando:
lista='a'*100

sostituisci a '100' quanto ti serve lunga la stringa. Se il comando
viene eseguito senza problemi, hai appena creato una lista della
lunghezza desiderata. Quindi si può.

> 2- Ho letto che le dichiarazioni di variabili all'interno di una lista
> , si separano con una virgola -  (1,2,3,). Le mosse di scacchi sono
> scritte separate da uno
> spazio e da un numero (1. d4 Cf6  2. c4 e6). Si può sostituire lo
> spazio alla virgola? (per dichiarare le variabili ovviamente).

Dubito fortemente. Magari qualcuno esperto ti risponderà che invece si
può fare... ma comunque tu cosa vuoi fare, "copia-incolla" delle partite
nel //codice// del tuo programma?!? Direi di no: il tuo programma dovrà
leggere degli //altri// file in cui ci sono le descrizioni delle
partite. E allora avranno il loro formato, diverso da quello delle liste
sotto python, e pace.

Nota che comunque c'è una bella differenza tra:
(1,2,3)
e
(1.,d4,Cf6)
la prima è una lista di numeri, che il python conosce, la seconda è una
lista di cose che il python non sa cosa sono, (a meno che prima non glie
le definisca tu, ma temo siano un po' troppe!). Probabilmente quello che
vuoi è importarle come stringhe, ovvero se tu volessi davvero mettere le
partite nel codice del programma dovrebbero essere così:
("1.","d4","Cf6")


> Ora avendo la risposta a queste due domande , credo di avere gli strumenti
> per "importare" in Python una partita "singola" . Il problema è : per
> importare più partite da un database , come posso "dividere" le
> partite ? Cioè come posso fare sapere a Python quando finisce una
> partita e inizia una nuova ? Se importassi le partite manualmente ,
> una a una , non ci sarebbe problema ,
> potrei scrivere qualsiasi codice di programma e crearmi un database
> specifico, ma l'utilità dell'applicazione verebbe a meno. Io devo
> potere importare "automaticamente" le partite da un database esistente
> , o da una copia testuale di esso (un database di partite discacchi
> posso convertirlo in formato TXT,HTML,RTF o PGN -pgn è lo standar per
> i database di scacchi).

In un qualsiasi di questi formati (ma prendi il più semplice, che
immagino sia il TXT) le partite saranno separate in qualche modo, no?

Perfetto, scopri in che modo sono separate, leggi un minimo di
documentazione sulla lettura da file e sulle stringhe  (un indizio:
"split") sotto python e sei a posto.

Pietro


More information about the Python mailing list