我有这本词典:
dict = {
'user_1': {'role': 1, 'perm': 5},
'user_2': {'role': 1, 'perm': 5},
'user_3': {'role': 1, 'perm': 4},
'user_4': {'role': 1, 'perm': 7},
'user_5': {'role': 3, 'perm': 5}
}
如何过滤以仅选取密钥:
重复的角色和权限:
repeated_role_perm = {
'user_1': {'role': 1, 'perm': 5},
'user_2': {'role': 1, 'perm': 5},
}
角色重复但没有重复权限:
only_role_repeated = {
'user_3': {'role': 1, 'perm': 4},
'user_4': {'role': 1, 'perm': 7},
}
剩下的:
leftovers = {
'user_5': {'role': 3, 'perm': 5}
}
我可以使用以下代码来缩短数据:
shorted_dict = OrderedDict(sorted(list.items(), key=lambda x: (operator.getitem(x[1], 'role'), operator.getitem(x[1], 'perm'))))
但这并不完全是我想要的。
aluckdog
函数式编程
相关分类