我有一個對象大致像這樣:如何排序對象屬性
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