[Python] operator.itemgetter con una lista

Giovanni Marco Dall'Olio dalloliogm a gmail.com
Ven 29 Maggio 2009 19:49:36 CEST


Scusate, ho una domanda stupidissma su operator.itemgetter.

Ho una stringa fatta cosí:
>>> dati = '1010010101010101010001'
inoltre, ho una lista con gli indici degli elementi che vorrei estrarre
dalla stringa precedente:
>>> indici = [1, 2, 5, 16, 20]

ho pensato di utilizzare operator.itemgetter per ottenere tutti i valori
corrispondenti agli indici desiderati, senza dover fare cicli.
per esempio, al posto di:
>>> for index in indici:
...     print dati[index]
vorrei fare:
>>> g = operator.itemgetter(indici)
>>> g(dati)

Il problema é che questo codice non funziona, perché operator.itemgetter non
accetta una lista come parametro, ma solo una serie di interi specificati
ognuno come un parametro a parte.
Questo funziona:
>>> g = operator.itemgetter(1, 2, 3, 5, 6)
ma questo no:
>>> g = operator.itemgetter([1, 2, 3, 5, 6])

questo comportamente mi sembra strano... esiste un metodo per convertire una
lista in un parametro accettabile da operator.itemgetter? O una maniera
alternativa per ottenere lo stesso risultato?

Many thanks :)


-- 
Giovanni Dall'Olio, phd student
Department of Biologia Evolutiva at CEXS-UPF (Barcelona, Spain)

My blog on bioinformatics: http://bioinfoblog.it
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: http://lists.python.it/pipermail/python/attachments/20090529/d817b9b4/attachment.htm 


Maggiori informazioni sulla lista Python