如何重新组织元组列表?

时间:2017-08-02 16:54:24

标签: python hashtable

说我有一个元组列表:

[(98, 'studentA'), (97, 'studentB'), (98, 'studentC'), (95,'studentD')]

我想组织它,以便学生按元组中的第一个数字组合在一起,最好的方法是什么?

我正在考虑创建一个列表数组,其中数组的每个索引都是不同的分数(在此示例中为98,97和95),学生将在该索引的列表中。对于一个更大的数据集,我正在考虑创建一个链接哈希表,但我不确定该怎么做,以保证两个不相同的分数不会被散列到相同的位置。

2 个答案:

答案 0 :(得分:6)

为什么不使用dictcollections.defaultdict也可以使用:

d = defaultdict(list)
for score, student in l:
    d[score] += student

答案 1 :(得分:0)

尝试使用带有数字键的排序

sorted(students, key=(lambda x: x[0]))

但字典对于大型数据集来说是个更好的主意