2 回答
TA贡献1818条经验 获得超11个赞
如果您按“相同结果的最高数量”对这些项目进行排序,则会得到以下结果:
['003', '004', '005', '006', '001', '002']
如果您的意思是其他意思(即不是“相同结果的最高数量”),请澄清您的问题。此外,您可以简单地修改该max_identical函数,使其根据您对相似的定义进行操作。
上面的结果是用以下方法计算的:
from collections import defaultdict
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]}]
def max_identical(lst):
counts = defaultdict(lambda: 0)
for x in lst:
if x is not None:
counts[x] += 1
return max(counts.values())
results = sorted(results, key=lambda x: max_identical(x['result']))
print [x['id'] for x in results]
- 2 回答
- 0 关注
- 169 浏览
添加回答
举报