我希望使用python intertools groupby创建一个函数,将小列表分组到一个较大的列表中。首先是一个具有以下结构的不同数据点的列表(称为sortedData)
[
[location, date, {item:quantity}],
[location2, date, {item2:quantity2}],
...
]
我试图对它们进行分组,以便每个位置/日期组合都有一个包含所有项目和数量的字典,并且这些列表按位置分组。下面是一个例子:
^{pr2}$到目前为止,我得到的是这段代码,但是我很难理解如何使用创建的组,因为它不是iterable项。现在它给出了一个空白列表,尽管它似乎应该附加一些东西
def compileData(sortedData):
from itertools import groupby
for key, locationGroup in groupby(sortedData, lambda x: x[0]):
locationList=[]
bigList=[]
for date in locationGroup:
locationList.append(date)
locationList.append(locationGroup)
for key, bigList in groupby(locationGroup, lambda x: x[1]):
datePlace=[key[0],key[1],{}]
for date in locationGroup:
datePlace[2]=dict(list(date[2].items())+list(datePlace[2].items()))
bigList.append(datePlace)
return bigList
告诉我你的想法,如果你对如何解决这个问题有更好的想法,请告诉我。我递归地写了它,但是我使用它的文件太长,所以太慢了。在
我想这是你想要的:
相关问题 更多 >
编程相关推荐