Python создать конкретный дикт из трех списков - PullRequest
0 голосов
/ 18 января 2019

У меня есть три списка, я хочу преобразовать в определенный диктовку

A = ["a", "b"]
B = ["10", "20"]
C = ["key1", "key2"]

Я хочу такой диктат

"key1": {
  "name": "a",
  "age": 10
},
"key2": {
    "name": "b",
    "age": 20
  }

Я пытаюсь по-другому, но я не понимаю этого.

for key in A:
  dict_A["name"].append(key)

Ответы [ 4 ]

0 голосов
/ 18 января 2019

Если вы не хотите использовать zip, тогда вы можете использовать enumerate, как указано ниже:

print ({v:{"name": A[k],"age": B[k]} for k, v in enumerate(C)})
0 голосов
/ 18 января 2019
In[1]:  {c: {'name': a, 'age': b} for a, b, c in zip(A, B, C)}
Out[1]: {'key1': {'name': 'a', 'age': '10'}, 'key2': {'name': 'b', 'age': '20'}}
0 голосов
/ 18 января 2019

Как насчет

for a,b,c in zip(A, B, C):
    your_dict[c] = {"name" : a, "age": b} 
0 голосов
/ 18 января 2019

Использование словарного понимания:

res = {key: {'name': name, 'age': age} for key, name, age in zip(C, A, B)}

Это дает:

{'key1': {'age': '10', 'name': 'a'}, 'key2': {'age': '20', 'name': 'b'}}

zip позволяет агрегировать элементы из каждой итерации по индексу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...