给定以下 python 字典列表:
results = [[{'id': '001', 'result': [0,0,0,0,1]},
{'id': '002', 'result': [1,1,1,1,1]},
{'id': '003', 'result': [0,1,1,None,None]},
{'id': '004', 'result': [0,None,None,1,0]},
{'id': '005', 'result': [1,0,None,1,1]},
{'id': '006', 'result': [0,0,0,1,1]}],
[{'id': '001', 'result': [1,0,1,0,1]},
{'id': '002', 'result': [1,1,1,1,1]},
{'id': '003', 'result': [0,1,1,None,None]},
{'id': '004', 'result': [0,None,None,1,0]},
{'id': '005', 'result': [1,0,None,1,1]},
{'id': '006', 'result': [1,0,1,0,1]}]
]
我想根据'result'的值生成一个新的排序列表(在python和golang中),方法是比较每个组中玩家('id')之间的结果,然后根据匹配条目的数量对它们进行排序(没有结果被丢弃且不计算在内):
在第一轮和第二轮中,001 和 006 有九个匹配的答案:
001 = [0,0,0,0,1] 006 = [0,0,0,1,1] - 四个匹配的答案。
在第二轮中,001 和 006 有五个匹配的答案:
001 = [1,0,1,0,1] 006 = [1,0,1,0,1] - 五个匹配的答案
sorted_results = ['001','006','002','005','003','004']
'001' 和 '006' 是列表中的前两项,因为它们的匹配结果数量最多 - 九个。