У меня есть список словарей (данных) и вы хотите преобразовать его в словарь (x), как показано ниже. Я использую следующий 'for loop' для достижения.Python Dict Понимание создания и обновления словаря
data = [{'Dept': '0123', 'Name': 'Tom'},
{'Dept': '0123', 'Name': 'Cheryl'},
{'Dept': '0123', 'Name': 'Raj'},
{'Dept': '0999', 'Name': 'Tina'}]
x = {}
for i in data:
if i['Dept'] in x:
x[i['Dept']].append(i['Name'])
else:
x[i['Dept']] = [i['Name']]
Output:
x -> {'0999': ['Tina'], '0123': ['Tom', 'Cheryl', 'Raj']}
Возможно ли реализовать вышеуказанную логику в понимании dict или любой другой более питонический путь?
Я не считаю это слишком сложно вообще. Тем не менее, он медленнее в смысле большого О, потому что данные необходимо повторно сканировать один раз для каждого найденного уникального ключа - в худшем случае O (N^2). –
Спасибо Underyx, это отвечает на мой вопрос и прекрасно работает. И да, это займет некоторое время, чтобы понять. :). Поэтому я пойду с тем, что предложил @ Юлин Сплонк. – akshat