如何重新组织元组列表?

sjy*_*sjy -3 python hashtable

说我有一个元组列表:

[(98, 'studentA'), (97, 'studentB'), (98, 'studentC'), (95,'studentD')]
Run Code Online (Sandbox Code Playgroud)

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

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

tha*_*vik 6

为什么不用dictcollections.defaultdict也会工作:

d = defaultdict(list)
for score, student in l:
    d[score] += student
Run Code Online (Sandbox Code Playgroud)