создание диктата из списка диктов - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть список словарей, который выглядит примерно так ->

  list =  [{"id":1,"path":"a/b", ........},
           {"id":2,"path":"a/b/c", ........},
           {"id":3,"path":"a/b/c/d", ........}]

Теперь я хочу создать определение пути к отображению идентификатора.Это должно выглядеть примерно так ->

   d=dict()
   d["a/b"] = 1
   d["a/b/c"] = 2
   d["a/b/c/d"] = 3

, как создать его питонским способом

Ответы [ 4 ]

0 голосов
/ 21 февраля 2019
_lst =  [{"id":1,"path":"a/b"},
           {"id":2,"path":"a/b/c"},
           {"id":3,"path":"a/b/c/d"}]

d = {i["path"]: i["id"] for i in _lst}

print(d)
print(d["a/b"])
print(d["a/b/c"])
print(d["a/b/c/d"])

ВЫХОД :

{'a/b': 1, 'a/b/c': 2, 'a/b/c/d': 3}
1
2
3
0 голосов
/ 21 февраля 2019

Может быть что-то вроде:

d = {x["path"]: x["id"] for x in list_of_dicts}
0 голосов
/ 21 февраля 2019

Может быть, что-то подобное?

list =  [{"id":1,"path":"a/b", "test":"1"},{"id":2,"path":"a/b/c", "test":"2"}, {"id":3,"path":"a/b/c/d", "test":"3"}]
d={}
for i in list:
    d[i['path']]=d['id']
print d

Это вывод:

{'a / b / c': 2, 'a / b / c / d': 3,' a / b ': 1}

0 голосов
/ 21 февраля 2019

Попробуй так:

d = {i['path']:i['id'] for i in list}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...