【发布时间】:2014-02-12 21:18:34
【问题描述】:
我正在尝试使用函数 groupby 和 itemgetter 将已排序的元组列表重新排列成组
from itertools import groupby
from operator import itemgetter
#initialize a list of tuples
indexed_qualityresults = [(u'moses-R4', 2.0), (u'moses-R4', 3.0), (u'lucy-R4', 3.0), (u'trados-R4', 2.0)]
#group tuples, using as a key the first element of each tuple
groupped_qualityresults = list(groupby(indexed_qualityresults, itemgetter(0)))
#print the key and the respective grouped tuples for each group
print "groupped_qualityresults =", [(a,list(b)) for a,b in groupped_qualityresults]
输出是
groupped_qualityresults = [(u'moses-R4', []), (u'lucy-R4', []), (u'trados-R4', [(u'trados-R4', 2.0)])]
如您所见,为 tmy 原始元组列表的前两个键返回的列表是空的,尽管它们不应该是空的。
预期输出:
groupped_qualityresults = [(u'moses-R4', [(u'moses-R4', 2.0), (u'moses-R4', 3.0)]), (u'lucy-R4', [(u'lucy-R4', 3.0)]), (u'trados-R4', [(u'trados-R4', 2.0)])]
有人可以找出问题所在吗?
【问题讨论】:
标签: python operator-keyword itertools