Поэтому у меня есть данные, структурированные в вложенном списке как такCondenseing/преобразования вложенного списка с помощью словаря понимания
data = [['A', '1'], ['B', '2'], ['C', '3'], ['A', '-2'], ['B', '4'], ['C', '1'], ['A', '2'], ['B', '1'], ['C', '-5']]
и я пытаюсь преобразовать его в выходной сигнал, который выглядит как этот
{'A': 1, 'C': -1, 'B': 7}
В целом суммируйте все A, B и C, поместите вывод в качестве словаря.
Я написал этот код, который дает правильный ответ
playerSum = {}
for ele in data:
if ele[0] not in playerSum:
playerSum[ele[0]] = int(ele[1])
else:
playerSum[ele[0]] += int(ele[1])
Однако я пытаюсь преобразовать блок кода выше в словаре понимания. В основном я понимаю, как это сделать, но я не понимаю, как написать + = как понимание словаря. Любое руководство по структуре было бы здорово.
До сих пор у меня есть этот
playerSum = {ele[0]: int(ele[1]) if ele[0] not in playerSum else playerSum[ele[0]] += int(ele[1]) for ele in data}
Edit: Так @achampion был в состоянии решить. Благодаря!
{key: sum(int(v) for k, v in data if k==key) for key in set(k for k, _ in data)}
Если вы показываете код, вы должны добавить языковой тег. – crashmstr
Только что, забыл, так как я писал все это. – nothisispatrick11
@ nothisispatrick11, просто невозможно сделать то, что вы пытаетесь, все, что вы можете сделать, это сделать более эффективный подход. –