[Soci SLIP] Aiuto python

Davide Corio davide.corio a domsense.com
Mer 1 Apr 2009 21:46:07 CEST


On Wed, 2009-04-01 at 18:49 +0000, Davide Corio wrote:
> il metodo più semplice sta ovviamente nel confrontare la corrispondenza,
> ovvero, se "lista" è la tua lista iniziale e vuoi mettere in una lista
> chiamata "a" tutti quelli che iniziano per 176 e finiscono per
> "010","020","050" e "060", potrai ad esempio fare:
> 
> >>> a = []
> >>> for element in lista:
> ...    if element[1:4]=="176" and element[-7:-4] in
> ["010","020","050","060"]:
> ...       a.append(element)
> ... 
> >>> a
> ['s176010.tfw', 's176050.tfw', 's176010.tfw']


Dimenticavo, se non conosci i criteri di suddivisione a priori la
questione è più ardua e potresti fare una cosa simile:

>>> liste = {}
>>> for element in lista:
...    if not element[1:4] in liste.keys():
...       liste[element[1:4]]={}
...       if not element[-7:-4] in liste[element[1:4]].keys():
...          liste[element[1:4]][element[-7:-4]]={}
...          liste[element[1:4]][element[-7:-4]]=element
... 
>>> liste
{'157': {'160': 's157160.tfw'}, '156': {'160': 's156160.tfw'}, '158':
{'130': 's158130.tfw'}, '176': {'050': 's176050.tfw'}, '175': {'150':
's175150.tfw'}, '174': {'120': 's174120.tfw'}}

poi alla fine puoi passare ogni elemento del dizionario e ogni suo sotto
elemento, tanto li il livello di profondità non cambia.

volendo nel passaggio potresti anche crearti le liste con nome xa, xb,
xc e così via


-- 
Davide Corio
email: davide.corio<at>domsense.com
web: http://www.domsense.com




Maggiori informazioni sulla lista Soci