@Hanharr

Как можно преобразовать такую строку в словарь?

Всем доброго времени суток.

Подскажите, есть строка с двумя разделителями. Хочу преобразовать её в словарь. Получилось сделать, интересует есть ли еще варианты решения.

Что вышло сейчас:
>>> text1 = 'id1:manager.500@domain.ru,id2:manager.501@domain.ru'
>>> text1 = text1.split(',')
>>> text1 = [item.split(':') for item in text1]
>>> text1 = dict((k,v) for (k,v) in text1)
>>> print(text1)
{'id2': 'manager.501@domain.ru', 'id1': 'manager.500@domain.ru'}


Подскажите, насколько оптимально такое решение и какие еще есть варианты реализации?
  • Вопрос задан
  • 493 просмотра
Решения вопроса 2
@mentor2
Задать словарь можно (5 вариантов: 4 через dict, один явно)
>>> d1 = dict({"id": 1948, "name": "Washer", "size": 3})
>>> d2 = dict(id=1948, name="Washer", size=3)
>>> d3 = dict([("id", 1948), ("name", "Washer"), ("size", 3)])
>>> d4 = dict(zip(("id", "name", "size"),(1948, "Washer", 3)))
>>> d5 = {"id": 1948, "name": "Washer", "size": 3}
вот и подгоняйте...
еще есть методы типа сетдефолт , а главное см коллекшнз, там описан Юзер.Дикт
(см. стр 105 Ромальо, Питон к вершинам мастерства....)
Ответ написан
Комментировать
@lega
dict(map(lambda x:x.split(':'), text1.split(',')))
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы