我想取一个字典列表,并以特定格式创建一个新的排列列表。
例如,我在下面列出了一些字典。我想以一种特定的格式使用这些项目创建所有可能的列表:(例如A型的result=dict,B型的dict,B型的dict,C型的dict,C型的dict,D型的dict,E型的dict,F型的dict ),其中B型的两项不能相等,C型的两项不能相等。我将处理大量的项目,所以关于如何更有效地处理排列的任何提示都将是有帮助的。
{'Items':[
{'Name':'name10','Type':'A','measure1':20,'measure2':20},
{'Name':'name20','Type':'A','measure1':25,'measure2':30},
{'Name':'name30','Type':'B','measure1':15,'measure2':40},
{'Name':'name40','Type':'B','measure1':20,'measure2':50},
{'Name':'name50','Type':'B','measure1':25,'measure2':60},
{'Name':'name60','Type':'C','measure1':15,'measure2':70},
{'Name':'name70','Type':'C','measure1':20,'measure2':80},
{'Name':'name80','Type':'C','measure1':25,'measure2':90},
{'Name':'name90','Type':'D','measure1':10,'measure2':30},
{'Name':'name85','Type':'D','measure1':15,'measure2':30},
{'Name':'name75','Type':'E','measure1':53,'measure2':30},
{'Name':'name65','Type':'E','measure1':10,'measure2':30},
{'Name':'name55','Type':'F','measure1':56,'measure2':10},
{'Name':'name45','Type':'F','measure1':10,'measure2':20}
]}
发布于 2013-08-15 21:17:08
假设您的条目字典位于变量x
中
x_set = set((i['Name'], i['Type'], i['measure1'], i['measure2']) for i in x['Items'])
items = [{'Name': i[0], 'Type': i[1], 'measure1': i[2], 'measure2': i[3]} for i in sorted(x_set)]
new_x = {'Items': items}
简单地使用字典的set()是很好的,但是在Python中是不可能的。字典必须解压成元组,然后重新包装成字典。
若要处理大型项目集,请考虑根据名称或类型将它们分解为“碎片”。
https://stackoverflow.com/questions/18261607
复制相似问题