Domanda Array Python con indici stringa


È possibile utilizzare stringhe come indici in un array in python?

Per esempio:

myArray = []
myArray["john"] = "johns value"
myArray["jeff"] = "jeffs value"
print myArray["john"]

44
2017-09-22 00:44


origine


risposte:


Quello che vuoi è chiamato un matrice associativa. In Python questi sono chiamati dizionari.

I dizionari si trovano talvolta in altre lingue come "memorie associative" o "array associativi". A differenza delle sequenze, che sono indicizzate da un intervallo di numeri, i dizionari sono indicizzati da chiavi, che possono essere di qualsiasi tipo immutabile; stringhe e numeri possono sempre essere chiavi.

myDict = {}
myDict["john"] = "johns value"
myDict["jeff"] = "jeffs value"

Modo alternativo per creare il suddetto dettato:

myDict = {"john": "johns value", "jeff": "jeffs value"}

Accesso ai valori:

print myDict["jeff"] # => "jeffs value"

Ottenere le chiavi (in Python v2):

print myDict.keys() # => ["john", "jeff"]

Se vuoi conoscere gli interni del dizionario Python, ti consiglio questa presentazione video di 25 minuti: https://www.youtube.com/watch?v=C4Kc8xzcA68. Si chiama "The Mighty Dictionary".


97
2017-09-22 00:46



Ancora meglio, prova un OrderedDict (supponendo che tu voglia qualcosa come una lista). Più vicino a un elenco rispetto a un normale dettato poiché le chiavi hanno un ordine proprio come gli elementi dell'elenco hanno un ordine. Con un dettato regolare, le chiavi hanno un ordine arbitrario.

Notare che questo è disponibile in Python 3 e 2.7. Se vuoi usare una versione precedente di Python puoi trovare moduli installabili per farlo.


4
2017-09-22 01:23