2011-08-21 31 views
18

द्वारा क्रमबद्ध पाइथन सूची में मेरे पास एक ऐसा फ़ंक्शन है जो ऑब्जेक्ट को तर्क के रूप में लेता है और मुझे एक नंबर देता है। मैं इस सूची का उपयोग अपनी सूची को सॉर्ट करने की कुंजी के रूप में करना चाहता हूं।फ़ंक्शन

अगर मैं सूची मैं की तरह कुछ करना होगा अधिक तेज़ी से दोहराने में थे:

sorted_list = [] 
for object in my_list_of_objects: 
    i = my_number_giving_function(object) 
    sorted_list.insert(i, object) 

कैसे कर सकते हैं मैं उपयोगकर्ता sorted एक ही परिणाम प्राप्त करने के लिए, और यह सलाह दी जाती है? यही वह है जो मैं आया था लेकिन मुझे नहीं पता कि '???' में क्या रखा जाए

sorted_list = sorted(my_list_of_objects, key=my_number_giving_function(???)) 
+0

की ([अजगर में प्रकार समारोह साथ मदद की जरूरत] संभव डुप्लिकेट http://stackoverflow.com/questions/3401123/need-help-with-sort -फंक्शन-इन-पायथन) – agf

उत्तर

16
sort(my_list_of_objects, key=my_number_giving_function) 

क्रमबद्ध के लिए एक ही, see the Python Sorting HOWTO

+1

हां, मुझे लगता है कि मुझे लैम्ब्डा भाग की आवश्यकता नहीं है। मैंने ऐसा नहीं सोचा था। – GWW

+5

यदि 'func' बिल्कुल एक तर्क लेता है, तो 'func'' lambda x: func (x) 'के बराबर है। इसे ईटा-कमी के रूप में जाना जाता है। –