Re: [Python] dizionario python con chiavi non univoche

2011-11-25 Per discussione Riccardo mancuso
scusami, ma se faccio

dati[0][11]

la risposta è un errore perchè manca la chiave 11 !

Il giorno 25 novembre 2011 08:41, Giuseppe Amato giuam...@gmail.com ha
scritto:

  salve a tutti,
  spiego meglio il mio problema: vorrei realizzare un dizionario in modo
 che
  come chiave si prenda un range di numeri ed i valori sono degli array.
  Ad esempio:
 
  dati={0x20:array([1, 5, 7 , 21,33]),
 21 x30: array(4,6,1,3,5]}
 
  ossia per tutti i valori x compresi tra 0 e 20 prendi il primo array (e
  così via)
  e' possibile ?

 C'è un modo anche se è un po' rozzo: fai un dizionario di dizionari

  dati={0:{20:[1, 5, 7 , 21,33]},21:{30:[4,6,1,3,5]}}
  dati[0][20]
 [1, 5, 7, 21, 33]

 In questo modo puoi richiamare direttamente l'array corrispondente al
 range che ti interessa fosse anche tra 0 e 10
 --
 --
 Giuseppe Amato
 e-mail: giuam...@gmail.com
 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] dizionario python con chiavi non univoche

2011-11-25 Per discussione Giovanni Marco Dall'Olio
2011/11/24 Riccardo mancuso mancuso.riccard...@gmail.com

 salve a tutti,
 spiego meglio il mio problema: vorrei realizzare un dizionario in modo che
 come chiave si prenda un range di numeri ed i valori sono degli array.
 Ad esempio:

 dati={0x20:array([1, 5, 7 , 21,33]),
 21 x30: array(4,6,1,3,5]}

 ossia per tutti i valori x compresi tra 0 e 20 prendi il primo array (e
 così via)
 e' possibile ?



Devi creare una classe basata su dict, e poi customizzare i metodi
__getitem__ e __setitem__.

Per esempio, leggi qui:
*
http://stackoverflow.com/questions/2390827/how-to-properly-subclass-dict-and-override-get-set

Prima di farlo, peró, ti consiglio di scrivere qualche doctest per definire
come questo dizionario si dovrebbe comportare.
Per esempio, come lo inizializzeresti?





 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python




-- 
Giovanni Dall'Olio, phd student
IBE, Institut de Biologia Evolutiva, CEXS-UPF (Barcelona, Spain)

My blog on bioinformatics: http://bioinfoblog.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] dizionario python con chiavi non univoche

2011-11-25 Per discussione Giuseppe Amato
 Puoi migliorare il tutto creando una classe di dati come scriveva Riccardo

Ho sbagliato, intendevo Giovanni...tu sei Riccardo ;P
-- 
--
Giuseppe Amato
e-mail: giuam...@gmail.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] dizionario python con chiavi non univoche

2011-11-24 Per discussione Riccardo mancuso
salve a tutti,
spiego meglio il mio problema: vorrei realizzare un dizionario in modo che
come chiave si prenda un range di numeri ed i valori sono degli array.
Ad esempio:

dati={0x20:array([1, 5, 7 , 21,33]),
21 x30: array(4,6,1,3,5]}

ossia per tutti i valori x compresi tra 0 e 20 prendi il primo array (e
così via)
e' possibile ?
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] dizionario python con chiavi non univoche

2011-11-24 Per discussione lordkrandel



dati={0x20:array([1, 5, 7 , 21,33]),
 21  x30: array(4,6,1,3,5]}

ossia per tutti i valori x compresi tra 0 e 20 prendi il primo array (e
così via)
e' possibile ?


No, scrivi una funzione.


Due righe al volo...
---

dati = [[0, None],[20,[1,2,3,4,5]],[30,[2,3,4,5]]]

def chooseCase(caso):
for x in dati:
if (caso = x[0]):
return x[1]
print(chooseCase(25))
print(chooseCase(-2))


--
Wyrmskull
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] dizionario python con chiavi non univoche

2011-11-24 Per discussione Giuseppe Amato
 salve a tutti,
 spiego meglio il mio problema: vorrei realizzare un dizionario in modo che
 come chiave si prenda un range di numeri ed i valori sono degli array.
 Ad esempio:

 dati={0x20:array([1, 5, 7 , 21,33]),
        21 x30: array(4,6,1,3,5]}

 ossia per tutti i valori x compresi tra 0 e 20 prendi il primo array (e
 così via)
 e' possibile ?

C'è un modo anche se è un po' rozzo: fai un dizionario di dizionari

 dati={0:{20:[1, 5, 7 , 21,33]},21:{30:[4,6,1,3,5]}}
 dati[0][20]
[1, 5, 7, 21, 33]

In questo modo puoi richiamare direttamente l'array corrispondente al
range che ti interessa fosse anche tra 0 e 10
-- 
--
Giuseppe Amato
e-mail: giuam...@gmail.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python