Converti un dizionario in una lista in Python

Sahil Bhosale 18 luglio 2021
  1. Converti le chiavi dal dizionario in una lista usando il metodo keys() in Python
  2. Converti i valori dal dizionario in una lista usando il metodo values() in Python
  3. Converti dizionario in una lista di tuple in Python
Converti un dizionario in una lista in Python

Un dizionario in Python è una combinazione di coppie chiave-valore. Con l’aiuto della chiave puoi accedere ai valori all’interno del dizionario. Ora convertire un dizionario in una lista in Python può significare cose diverse. O,

  1. È possibile separare le chiavi e convertirle in una lista
  2. È possibile separare i valori e convertirli in una lista
  3. Convertire la coppia chiave e valore del dizionario in una lista di tupla.

Converti le chiavi dal dizionario in una lista usando il metodo keys() in Python

Supponi di avere un dizionario chiamato dictionary con quattro coppie key-value.

dictionary = {"a": "Apple", "b": "Banana", "c": "Cherries", "d": "Dragon Fruit"}

listOfKeys = dictionary.keys()
print("Type of variable listOfKeys is: ", type(listOfKeys))

listOfKeys = list(listOfKeys)

print("Printing the entire list containing all Keys: ")
print(listOfKeys)

print("Printing individual Keys stored in the list:")

for key in listOfKeys:
    print(key)

Produzione:

Type of variable listOfKeys is:  <class 'dict_keys'>

Printing the entire list containing all Keys: 
['a', 'b', 'c', 'd']

Printing individual Keys stored in the list:
a
b
c
d

Puoi usare il metodo keys(), che estrarrà tutte le keys dal dizionario e quindi memorizzerà il risultato (tutte le chiavi) all’interno della variabile listOfKeys.

Ora devi convertire la variabile listOfKeys in una lista con l’aiuto della funzione list() perché a questo punto se controlli il tipo della variabile listOfKeys allora sarà <class 'dict_keys'>. Ecco perché stiamo cambiando il tipo di variabile in List e poi memorizzandolo nella stessa variabile, cioè listOfKeys.

A questo punto, hai separato con successo tutte le chiavi dal dizionario usando la funzione keys() e le hai convertite in una lista. Infine, per stampare gli elementi all’interno della lista, devi usare un cicli for, che itera su ogni elemento e lo stampa.

Converti i valori dal dizionario in una lista usando il metodo values() in Python

Il metodo values() funziona allo stesso modo del metodo keys(). L’unica differenza è che il metodo values() restituisce tutti i valori del dizionario invece delle chiavi.

dictionary = {"a": "Apple", "b": "Banana", "c": "Cherries", "d": "Dragon Fruit"}

listOfValues = dictionary.values()
print("Type of variable listOfValues is: ", type(listOfValues))

listOfValues = list(listOfValues)

print("Printing the entire list containing all values: ")
print(listOfValues)

print("Printing individual values stored in the list:")

for val in listOfValues:
    print(val)

Produzione:

Type of variable listOfValues is:  <class 'dict_values'>

Printing the entire list containing all values: 
['Apple', 'Banana', 'Cherries', 'Dragon Fruit']

Printing individual values stored in the list:
Apple
Banana
Cherries
Dragon Fruit

Si utilizza la funzione values() sul dictionary e quindi si memorizza il risultato restituito dalla funzione values() all’interno della variabile listOfValues.

Se controlli il tipo della variabile listOfValues, il suo tipo sarà della classe <class 'dict_values'>. Ma vuoi che sia di classe <class 'list'>. Pertanto, devi convertire la variabile listOfValues in una lista usando la funzione list() e poi memorizzare il risultato nella stessa variabile, cioè listOfValues.

Infine, stampa tutti i valori all’interno della lista listOfValues usando un bucle.

Converti dizionario in una lista di tuple in Python

Un dizionario può essere convertito in una lista di tuple in due modi. Una è la funzione items() e l’altra è la funzione zip().

1. Funzione items()

La funzione items() converte gli elementi del dizionario in <class 'dict_items'> e il cui risultato è memorizzato nella variabile myList. La myList deve essere convertita in una lista, quindi per questo, devi digitarla usando la funzione list() e poi memorizzare il risultato nella stessa variabile cioè myList.

dictionary = {"a": "Apple", "b": "Banana", "c": "Cherries", "d": "Dragon Fruit"}

myList = dictionary.items()
print(type(myList))

myList = list(myList)

print(myList)

Produzione:

<class 'dict_items'>
[('a', 'Apple'), ('b', 'Banana'), ('c', 'Cherries'), ('d', 'Dragon Fruit')]

2. Funzione zip()

La funzione zip() accetta due argomenti: il primo è la chiave che usa la funzione keys() e il secondo è il valore che usa la funzione values() dal dizionario. Quindi restituisce un oggetto zip che puoi memorizzare all’interno di una variabile, in questo caso, myList.

dictionary = {"a": "Apple", "b": "Banana", "c": "Cherries", "d": "Dragon Fruit"}

myList = zip(dictionary.keys(), dictionary.values())
print(type(myList))

myList = list(myList)

print(myList)

Produzione:

<class 'zip'>
[('a', 'Apple'), ('b', 'Banana'), ('c', 'Cherries'), ('d', 'Dragon Fruit')]

Ora devi convertire l’oggetto zip in una lista usando la funzione list(). Quindi è possibile memorizzare il risultato finale all’interno della stessa variabile denominata myList o in una variabile diversa a seconda delle proprie esigenze e alla fine stampare l’intera lista.

3. iteritems() in Python 2.x

In Python v2.x, hai anche una funzione iteritems(), che funziona quasi allo stesso modo della funzione items().

iteritems() prende ogni elemento dal dizionario e lo converte in un tipo diverso. Se controlli il tipo della variabile myList, sarà di tipo <type 'dictionary-itemiterator'>. Quindi, devi convertirlo in una lista usando la funzione list(). Se controlli il tipo della variabile myList allora sarà di tipo <type 'list'> e se lo stampi gli elementi saranno sotto forma di una lista di tuple.

dictionary = {"a": "Apple", "b": "Banana", "c": "Cherries", "d": "Dragon Fruit"}

myList = dictionary.iteritems()
print("Type of myList is: ", type(myList))

myList = list(myList)
print(myList)

Produzione:

('Type of myList is: ', <type 'dictionary-itemiterator'>)

[('a', 'Apple'), ('c', 'Cherries'), ('b', 'Banana'), ('d', 'Dragon Fruit')]

Assicurati di eseguire il codice precedente sul compilatore Python v2.x; altrimenti, riceverai un errore perché non abbiamo questo metodo in Python v3.x.

Sahil Bhosale avatar Sahil Bhosale avatar

Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.

LinkedIn

Articolo correlato - Python Dictionary

Articolo correlato - Python List