我有一个重复值(coach)的字典列表。你知道吗
d = [
{"players": [{"id": 179, "name": "Santosh"}], "coach": "Xavi Alonso"},
{"players": [{"id": 180, "name": "Hari"}], "coach": "Xavi Alonso"},
{"players": [{"id": 175, "name": "Hitman"}], "coach": "Anna Puyol"}
]
我想根据coach名称合并重复项。我怎样才能做到这一点?你知道吗
def exportplayers(request):
d = [
{"players": [{"id": 179, "name": "Santosh"}, {"id": 180, "name": "Hari"}], "coach": "Xavi Alonso"},
{"players": [{"id": 175, "name": "Hitman"}], "coach": "Anna Puyol"}
]
return HttpResponse(json.dumps(d))
您可以使用itertools模块中的^{} 和} 来实现这一点。可以将grouby操作看作是从记录中返回连续键和组的一种方法。为了让它工作,您需要按照
operator
模块中的^{sorted
函数在这里所做的“coach”值对列表中的“items”进行排序。当然,为了自定义排序顺序,您需要提供一个键函数,其中一种方法是使用类似于sorted(d, key=lambda _: _["coach"])
的lambda表达式,但我更喜欢使用sorted(d, key=itemgetter('coach'))
的另一种方法,也就是说,您还需要向groupby
提供键参数,这是一个计算每个元素的键值的函数在documentation中提到,同样可以使用key=itemgetter("coach")
。你知道吗使用lambda表达式作为键函数的演示:
一种可能的解决方案是构建一个辅助字典,以
coach
作为键,以players
列表作为值aux
现在是:然后你可以用一个列表来建立你的返回值
哪个是
像这样:
但在这里用词变得很奇怪。。。上课怎么样?你知道吗
相关问题 更多 >
编程相关推荐