Я столкнулся с этой проблемой несколько раз и, похоже, не могу найти простого решения. Скажем, у меня есть строкапреобразовать строку в dict, используя понимание списка в python
string = "a=0 b=1 c=3"
Я хочу, чтобы преобразовать его в словарь с а, б и является ключевым и 0, 1 и 3 являются их соответствующие значения (преобразованная в целое). Очевидно, что я могу это сделать:
list = string.split()
dic = {}
for entry in list:
key, val = entry.split('=')
dic[key] = int(val)
Но мне не очень нравится, что цикл, кажется, так просто, что вы должны быть в состоянии преобразовать его в какой-то выражения списка понимания. И это работает в более простых случаях, когда val
может быть строкой.
dic = dict([entry.split('=') for entry in list])
Однако мне нужно преобразовать val в int на лету, и выполнение чего-то подобного синтаксически неверно.
dic = dict([[entry[0], int(entry[1])] for entry.split('=') in list])
Так что мой вопрос: есть ли способ устранить цикл for, используя понимание списка? Если нет, есть ли встроенный метод python, который сделает это для меня?
Примечание: Не следует использовать встроенные функции, как имена переменных ('' string', list' и т.д.) –