说我有一个元组列表:
[(98, 'studentA'), (97, 'studentB'), (98, 'studentC'), (95,'studentD')]
我想组织它,以便学生按元组中的第一个数字组合在一起,最好的方法是什么?
我正在考虑创建一个列表数组,其中数组的每个索引都是不同的分数(在此示例中为98,97和95),学生将在该索引的列表中。对于一个更大的数据集,我正在考虑创建一个链接哈希表,但我不确定该怎么做,以保证两个不相同的分数不会被散列到相同的位置。
答案 0 :(得分:6)
为什么不使用dict
? collections.defaultdict
也可以使用:
d = defaultdict(list)
for score, student in l:
d[score] += student
答案 1 :(得分:0)
尝试使用带有数字键的排序
sorted(students, key=(lambda x: x[0]))
但字典对于大型数据集来说是个更好的主意