在 python 中,我有一个类列表,这些类有一个名为 category
的字符串字段。
让我们考虑以下示例:
mylist[0].category # = "furniture"
mylist[1].category # = "car"
mylist[2].category # = "fruit"
mylist[3].category # = "car"
mylist[4].category # = "furniture"
我的问题是:如何通过使用新类别的第一次出现来对列表重新排序?
使用前面的示例,结果将是:
mylist[0].category # = "furniture"
mylist[1].category # = "furniture"
mylist[2].category # = "car"
mylist[3].category # = "car"
mylist[4].category # = "fruit"
最佳答案
首先,按照与 my_list
相同的顺序获取类别列表。然后,根据每个项目的类别在类别列表中首次出现的位置对 my_list
进行排序。
categories = [item.category for item in my_list]
my_list.sort(key = lambda item: categories.index(item.category))
关于python - 使用 python 中的第一次出现进行分组排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20457413/