itemgetter用来去dict中的key,省去了使用lambda函数
from operator import itemgetter
from itertools import groupby
d1 = {'name': '1张三', 'age': 20, 'country': 'China'}
d2 = {'name': 'wangwu11', 'age': 19, 'country': 'USA'}
d3 = {'name': 'lisi1', 'age': 22, 'country': 'JP'}
d4 = {'name': 'zhaoliu', 'age': 22, 'country': 'USA'}
d5 = {'name': 'pengqi', 'age': 22, 'country': 'USA'}
d6 = {'name': 'lijiu', 'age': 22, 'country': 'China'}
lst = [d1, d2, d3, d4, d5, d6]
通过name进行分组:
需要先排序,然后才能分组。lst排序后自身被改变
lst.sort(key=itemgetter('name'))
lst1 = groupby(lst, itemgetter('name'))
group是一个迭代器,包含了所有的分组列表
for key, group in lst1:
for g in group:
# print(key, g)
print(key)
def search():
for x in range(0, len(lst)):
l = lst[x]
name = l['name']
name1 = (input('请输入要搜索的联系人姓名'))
if name1 in name:
print('找到联系人:', name)
else:
print('联系人 %s 不存在' % name)
search()