Ho riscontrato questo problema alcune volte e non riesco a trovare una soluzione semplice. Dire che ho una stringaconvertire la stringa in dettare utilizzando la comprensione degli elenchi in python
string = "a=0 b=1 c=3"
voglio convertire in un dizionario con a, b e c è la chiave e 0, 1, e 3 essendo i rispettivi valori (convertito in int). Ovviamente posso fare questo:
list = string.split()
dic = {}
for entry in list:
key, val = entry.split('=')
dic[key] = int(val)
Ma io in realtà non così per ciclo, Sembra così semplice che si dovrebbe essere in grado di convertirlo in una sorta di espressione di lista. E questo funziona per i casi leggermente più semplici in cui lo val
può essere una stringa.
dic = dict([entry.split('=') for entry in list])
Tuttavia, ho bisogno di convertire val ad un int al volo e fare qualcosa di simile è sintatticamente corretto.
dic = dict([[entry[0], int(entry[1])] for entry.split('=') in list])
Quindi la mia domanda è: esiste un modo per eliminare il ciclo for usando di lista? In caso contrario, c'è qualche costruito in Python che lo farà per me?
Nota: Non usare costruito nelle funzioni come nomi di variabili ('STRING',' list', etc.) –