簡體   English   中英

將嵌套列表轉換為字典,其中列表的第一個元素是字典的鍵

[英]Convert nested list to dict where first element of list is key for dict

我有清單,

[['1', '4.00', 'A'],
['1', '5.00', 'B'],
['2', '4.00', 'V'],
['1', '12.00', 'C'],
['3', '4.00', 'R']]

我如何將該列表轉換為

{'1': [{'total': 21}, {'data': [['A'], ['B'], ['C']]}]}
{'2': [{'total': 4}, {'data': ['C']}]}
{'3':....}

首先,我們對數據進行排序,該數據將根據初始元素對嵌套列表進行排序,因此我們得到嵌套列表,其中的元素在嵌套列表內的列表的第一個索引上排序,然后我們在第一個元素上進行groupby()

import itertools

a= [['1', '4.00', 'A'],
   ['1', '5.00', 'B'],
   ['2', '4.00', 'V'],
   ['1', '12.00', 'C'],
   ['3', '4.00', 'R'],
]

a.sort()

dictionary = {}
group = itertools.groupby(a, key = lambda x:x[0])
for k,g in group:
   ans = 0
   alphabets = []
   for i in g:
      ans+=(float(i[1]))
      alphabets.append([i[2]])
   dictionary[k] = [{'total':ans}, {'date':alphabets}]

print dictionary

>>> {'1': [{'total': 21.0}, {'date': [['C'], ['A'], ['B']]}], '3': [{'total': 4.0}, {'date': [['R']]}], '2': [{'total': 4.0}, {'date': [['V']]}]}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM