关于排序:如何在python中使用struct数据对列表进行排序?

How to sort a list with struct data in python like this?

本问题已经有最佳答案,请猛点这里访问。

我按类定义一个结构,如下所示:

1
2
3
4
5
  class image:
  def __init__(self):
      self.address = ''
      self.label = 1
      self.storage = 1

然后,我把100个stuct数据放到一个列表中。

1
2
3
4
5
6
images = []
for i in range(100):
    single_image = image()
    single_image.address = 'xxx'
    single_image.label = 3 #1:5
    single_image.storage = 10 #1:100

如何按存储区对图像进行排序?


使用operator

1
2
import operator
images.sort(key=operator.attrgetter('storage'))

1
2
import operator  
images_sorted = sorted(images,key=operator.attrgetter('storage'))

或者您可以在适当的位置对图像进行排序。

1
images.sort(images,key=operator.attrgetter('storage'))