#python
#python
Вопрос:
a = [0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3]
b = [24, 53, 88, 32, 45, 24, 88, 53, 11, 22, 33, 44, 55, 66, 77]
Это список для того же
Комментарии:
1. Ваш желаемый результат не является допустимой структурой данных. У dict не может быть дубликатов ключей.
2. обработайте свой вывод из построенного dict следующим образом: для el в d.items(): print(«ID:» str(el[0]), «Лотерея» str(el[1]))
3. Поместите ID amp; Lottery в namedtuple или в диктат самого себя.
4. Вы могли бы создать список dicts из вашего
d
:[{"ID": k, "Lottery": v} for k, v in d.items()]
.5. Как вы его отредактировали, в чем теперь вопрос?
Ответ №1:
Ваш ожидаемый результат — недопустимая структура данных. Вы можете точно достичь этого с помощью списка словаря в python,
result = []
for k,v in d.items():
result.append({"ID": k, "Lottery": v})
print(result)
Вывод
[
{'ID': 0, 'Lottery': [24, 53, 88]},
{'ID': 1, 'Lottery': [32, 45, 24, 88, 53]},
{'ID': 2, 'Lottery': [11, 22, 33, 44, 55, 66]},
{'ID': 3, 'Lottery': [77]}
]
ДЕМОНСТРАЦИЯ: https: //rext.com/XNBFFD14330
Комментарии:
1. @devopio вы можете пометить его как принятый зеленой галочкой
Ответ №2:
Вы могли бы сделать это, используя словарь словарей, который позже преобразуется в список словарей.
a = [0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3]
b = [24, 53, 88, 32, 45, 24, 88, 53, 11, 22, 33, 44, 55, 66, 77]
d = { i:{"ID":i, "Lottery":[]} for i in a }
for i,v in zip(a,b): d[i]["Lottery"].append(v)
d = [*d.values()]
print(d)
# [{'ID': 0, 'Lottery': [24, 53, 88]}, {'ID': 1, 'Lottery': [32, 45, 24, 88, 53]}, {'ID': 2, 'Lottery': [11, 22, 33, 44, 55, 66]}, {'ID': 3, 'Lottery': [77]}]