Sorting a list of lists in Python -


  c2 = [] पंक्ति 1 = [1,22,53] पंक्ति 2 = [14,25,46] row3 = [7,8,9] c2.append (row2) c2.append (row1) c2.append (row3)  

c2 अब है: <

  [[14, 25, 46], [1, 22, 53], [7, 8, 9]]  

मैं कैसे सी 2 इस तरह से कि उदाहरण के लिए:

  पंक्ति के लिए सी 2 में: पंक्ति पर पंक्तिबद्ध [2]  

परिणाम होगा :

  [[7,8,9], [14,25,46], [1,22,53]]  

दूसरा प्रश्न यह है कि मैं पहली बार पंक्ति [2] के अनुसार कैसे और पंक्ति में [1]

द्वारा निर्धारित किया गया है प्रत्येक तर्क तत्व से एक तुलना कुंजी निकालने के लिए उपयोग किया जाता है एक तर्क का एक कार्य तो हम एक सरल लैम्ब्डा बना सकते हैं जो कि प्रत्येक पंक्ति से अंतिम पंक्ति को वापस क्रम में उपयोग करने के लिए देता है:

  c2.sort (key = lambda row: row [ 2])  

जब आप इस तरह एक साधारण एकल उपयोग समारोह बनाना चाहते हैं तो यह आसान है। बराबर कोड लैम्ब्डा का उपयोग नहीं करेगा:

  def sort_key (पंक्ति): वापसी पंक्ति [2] c2.sort (key = sort_key)  

यदि आप अधिक प्रविष्टियों को सॉर्ट करना चाहते हैं, तो बस key फ़ंक्शन को एक महत्वपूर्ण दर्जा युक्त क्रम में एक ट्यूपल वापस लौटाएं। उदाहरण के लिए:

  c2.sort (कुंजी = लैम्ब्डा पंक्ति: (पंक्ति [2], पंक्ति [1]))  

या:

  c2.sort (कुंजी = लैम्ब्डा पंक्ति: (पंक्ति [2], पंक्ति [1], पंक्ति [0]))  

Comments