您当前的位置: 首页 >  彭世瑜 Python

Python编程:itemgetter获取字典元素和groupby分组

彭世瑜 发布时间:2018-11-18 22:00:48 ,浏览量:3

itemgetter获取字典元素 groupby分组

代码示例

from itertools import groupby
from operator import itemgetter

d1 = {"name": "Tom", "age": 23, "country": "cn"}
d2 = {"name": "Jimi", "age": 21, "country": "en"}
d3 = {"name": "Tomy", "age": 22, "country": "usa"}
d4 = {"name": "Mimi", "age": 23, "country": "cn"}
d5 = {"name": "Jack", "age": 24, "country": "en"}

lst = [d1, d2, d3, d4, d5]

# 排序
lst.sort(key=itemgetter("country"))
# lst.sort(key=lambda x: x["country"])
for d in lst:
    print(d)
"""
{'name': 'Tom', 'age': 23, 'country': 'cn'}
{'name': 'Mimi', 'age': 23, 'country': 'cn'}
{'name': 'Jimi', 'age': 21, 'country': 'en'}
{'name': 'Jack', 'age': 24, 'country': 'en'}
{'name': 'Tomy', 'age': 22, 'country': 'usa'}
"""

# 分组
groups = groupby(lst, key=itemgetter("country"))
# groups = groupby(lst, key=lambda x: x["country"])
for key, group in groups:
    print(key)
    for g in group:
        print("\t", g)

"""
cn
	 {'name': 'Tom', 'age': 23, 'country': 'cn'}
	 {'name': 'Mimi', 'age': 23, 'country': 'cn'}
en
	 {'name': 'Jimi', 'age': 21, 'country': 'en'}
	 {'name': 'Jack', 'age': 24, 'country': 'en'}
usa
	 {'name': 'Tomy', 'age': 22, 'country': 'usa'}
"""

参考 Python中的分组函数(groupby、itertools)

关注
打赏
1688896170
查看更多评论

彭世瑜

暂无认证

  • 3浏览

    0关注

    2727博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0792s