📜  Python – List 上的值嵌套分组

📅  最后修改于: 2022-05-13 01:54:58.259000             🧑  作者: Mango

Python – List 上的值嵌套分组

有时,在处理数据时,我们可能会遇到一个问题,即我们有字典列表形式的平面数据,我们需要根据 id 对这些裸字典进行分类。这可以应用于涉及数据的领域,例如 Web 开发和数据科学。让我们讨论一下可以执行此任务的特定方式。

方法:使用defaultdict() + setdefault() + 循环
上述功能的组合可用于执行此任务。这是可以执行此操作的粗暴方式。在此,我们使用用于嵌套记录形成的字典值初始化 defaultdict(),并使用 setdefault() 和条件填充数据。

# Python3 code to demonstrate working of 
# Value nested grouping on List
# Using loop + setdefault() + defaultdict()
from collections import defaultdict
  
# initializing list
test_list = [{ 'value' : 'Fruit'},
             { 'tag' : 'Fruit', 'value' : 'mango'},
             { 'value' : 'Car'},
             { 'tag' : 'Car', 'value' : 'maruti'},
             { 'tag' : 'Fruit', 'value' : 'orange'},
             { 'tag' : 'Car', 'value' : 'city'}]
  
  
# printing original list
print("The original list is : " + str(test_list))
  
# Value nested grouping on List
# Using loop + setdefault() + defaultdict()
temp = defaultdict(dict)
res = {}
for sub in test_list:
    type = sub['value']
    if 'tag' in sub:
        tag = sub['tag']
        temp[tag].setdefault(type, temp[type])
    else:
        res[type] = temp[type]
  
# printing result 
print("The dictionary after grouping : " + str(res)) 
输出 :