我有一个对象大致像这样:如何排序对象属性
class Hand(object):
def __init__(self, finger_names, finger_lengths, nail_sizes):
self.finger_names = finger_names
self.finger_lengths = finger_lengths
self.nail_sizes = nail_sizes
def _sort_by_finger_lengths(self):
????
finger_names
,finger_lengths
和nail_sizes
都是要么同样长的列表或空(例如,如果人没有测量他们的nail_sizes
但)。目标是通过finger_lengths对对象的属性进行排序。所以如果你从一个Hand对象开始,其中的列表按照从左到右的顺序排列(小指,圆环,中间,指针,拇指),你最终会得到一个Hand对象,其中所有的属性都由finger_lengths排序。
像这样:
finger_names = [pinky, thumb, pointer, ring, middle]
finger_lengths = [6, 7, 12, 13, 15]
nail_sizes = []
编辑补充:手仅仅是一个例子类。真正的代码有很好的理由让每个属性都有列表。
我真的很感兴趣的手指定长度的图片... – 2012-02-25 20:51:23
您的数据结构是错误的。你需要有一个单一的列表,其中的每个项目有3个属性,fingerName,fingerLength和nailSize。然后,当您排序时,所有关联的属性都保留在一起。或者你有一个以fingerName作为关键字的字典。但保留一根手指的所有属性。 – 2012-02-25 20:51:42
@DavidHeffernan你说得对 - 这只是一个例子。我的真实数据更复杂。 – mlissner 2012-02-25 21:18:45