如何重组元组列表?

How to reorganize a list of tuples?

假设我有一个元组列表:

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

我想组织它,让学生按元组中的第一个数字分组,最好的方法是什么?

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

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

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

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

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

但是对于大型数据集,字典会更好