我已经排序了一个列表,它有一个字典。按'a'排序:
A = [{'a': 1,'c': 3}, {'a': 1,'c': 300}, {'a': 10,'c': 30}, {'a': 10,'c': 3000}]
我需要把它转换成
[ [{'a':1,'c':3},{'a':1,'c':300}] , [{'a':10,'c':30}, {'a':10,'c':3000}] ]
由于您的数据已经按分组键排序,您可以方便地使用itertools.groupby
:
from itertools import groupby
[list(g) for _, g in groupby(A, key=lambda d: d["a"])]
# [[{'a': 1, 'c': 3}, {'a': 1, 'c': 300}],
# [{'a': 10, 'c': 30}, {'a': 10, 'c': 3000}]]
您可以使用operator.itemgetter
:
from operator import itemgetter
[list(g) for _, g in groupby(A, key=itemgetter("a"))]
请注意,_
只是一个匿名变量(按照约定是匿名的),表明我们不会在任何地方使用它的值。