您可以将元素一一添加到默认情况下包含空列表的字典中:
import collectionsresult_dict = collections.defaultdict(list)for x in y: result_dict[x.key].append(x.value)
您也可以执行非常相似的操作,而不必使用collections模块:
result_dict = {}for x in y: result_dict.setdefault(x.key, []).append(x.value)
但这可以说是不太清晰。
一个等效的,更清晰的(不需要“解析”不太常见的
setdefault),但更加行人化的基本Python方法是:
result_dict = {}for x in y: if x.key not in result_dict: result_dict[x.key] = [] result_dict[x.key].append(x.value)
第一个解决方案显然是首选,因为它同时简洁,清晰,快速。