Metodo get in list comprehension

cini.1933403 (660 points)
2 7 12
asked Nov 12, 2020 in Programmare in Python by cini.1933403 (660 points)
E' possibile usare il metodo get dei dizionari in una list comprehension? Non riesco a capire come costruirlo e mi sta venendo il dubbio che non sia possibile.
159 views

1 Answer

AdSum (16290 points)
9 20 134
answered Nov 12, 2020 by AdSum (16,290 points)

x=[dict.get(k) for k in dict]

Ovviamente dict è una parola riservata, quindi dovrai dare un'altro nome al dizionario!

cini.1933403 (660 points)
2 7 12
commented Nov 12, 2020 by cini.1933403 (660 points)
non dovrei usare le graffe? Non ho specificato che il get lo voglio usare per costruire il dizionario a partire da una lista, come per il classico esercizio di contare  la frequenza di una lettera in una stringa.
AdSum (16290 points)
9 20 134
commented Nov 12, 2020 by AdSum (16,290 points)
Una list comprehension serve per creare una lista, usando le graffe è una dict comprehension
cini.1933403 (660 points)
2 7 12
commented Nov 12, 2020 by cini.1933403 (660 points)
si my bad hai ragione, non conoscevo proprio questa differenza.

Quindi per una dict comprehension è possibile?
AdSum (16290 points)
9 20 134
commented Nov 12, 2020 by AdSum (16,290 points)
Certamente, ma non con una get, non puoi usare un metodo di un oggetto per creare l'oggetto stesso. se dict non è stato ancora generato, come puoi usare dict.get()?
cini.1933403 (660 points)
2 7 12
commented Nov 12, 2020 by cini.1933403 (660 points)
eh si infatti questo era il mio problema, che poi faccio riferimento ad una cosa che sto creando in quello stesso momento.

Grazie