Python根据某一个字段值进行分组

现有一个由多个字典构成的列表,根据字典某一字段进行分组

result=[
            {"id":"1","groupName":"A","value2":"678768"},
            {"id":"3","groupName":"B","value2":"SDFSDF"},
            {"id": "5", "groupName": "C", "value2": "546456"},
            {"id":"4","groupName":"B","value2":"234234"},
            {"id": "2", "groupName": "A", "value2": "SDFSDF"},
            {"id":"6","groupName":"C","value2":"UIKHJK"},
        ]

1,首先根据分组字段groupName 进行排序

result= sorted(result, key=itemgetter('groupName'))
result[{
	'id': '1',
	'groupName': 'A',
	'value2': '678768'
}, {
	'id': '2',
	'groupName': 'A',
	'value2': 'SDFSDF'
}, {
	'id': '3',
	'groupName': 'B',
	'value2': 'SDFSDF'
}, {
	'id': '4',
	'groupName': 'B',
	'value2': '234234'
}, {
	'id': '5',
	'groupName': 'C',
	'value2': '546456'
}, {
	'id': '6',
	'groupName': 'C',
	'value2': 'UIKHJK'
}]

2,使用groupby方法进行分组

groups = {}
for key, group in groupby(result, key=itemgetter('groupName')):
    groups[key] = list(group)

3,结果

{
	'A': [{
		'id': '1',
		'groupName': 'A',
		'value2': '678768'
	}, {
		'id': '2',
		'groupName': 'A',
		'value2': 'SDFSDF'
	}],
	'B': [{
		'id': '3',
		'groupName': 'B',
		'value2': 'SDFSDF'
	}, {
		'id': '4',
		'groupName': 'B',
		'value2': '234234'
	}],
	'C': [{
		'id': '5',
		'groupName': 'C',
		'value2': '546456'
	}, {
		'id': '6',
		'groupName': 'C',
		'value2': 'UIKHJK'
	}]
}
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值