Kilka razy spotkałem się z tym problemem i nie mogę wymyślić prostego rozwiązania. Załóżmy, że ma łańcuchKonwertuj ciąg znaków do dyktowania za pomocą rozumienia listy w pythonie
string = "a=0 b=1 c=3"
I do przeliczenia, że w słowniku z A, B i C jest klucz i 0, 1 i 3 jest ich odpowiednie wartości (w przeliczeniu na int). Oczywiście mogę to zrobić:
list = string.split()
dic = {}
for entry in list:
key, val = entry.split('=')
dic[key] = int(val)
Ale ja nie lubię, że dla pętli Wygląda na to tak proste, że powinieneś być w stanie przekształcić go do jakiejś wypowiedzi lista zrozumieniem. A to działa dla nieco prostszych przypadków, w których val
może być ciągiem znaków.
dic = dict([entry.split('=') for entry in list])
Jednak muszę konwertować val do int w locie i robi coś takiego jest składniowo niepoprawne.
dic = dict([[entry[0], int(entry[1])] for entry.split('=') in list])
Moje pytanie brzmi: czy istnieje sposób na wyeliminowanie pętli for za pomocą zrozumienia list? Jeśli nie, czy jest jakiś wbudowany w Pythona sposób, który zrobi to dla mnie?
Uwaga: Nie należy używać wbudowanych funkcji, jak nazwy zmiennych ('' list' string', etc.) –