मैं की एक सूची है (लेबल, गिनती) इस तरह tuples:समूहीकरण अजगर टपल सूची
[('grape', 100), ('grape', 3), ('apple', 15), ('apple', 10), ('apple', 4), ('banana', 3)]
से है कि मैं एक ही लेबल के साथ सभी मूल्यों (एक ही लेबल हमेशा आसन्न) योग करने के लिए करना चाहते हैं और एक सूची प्रदान एक ही लेबल क्रम में:
[('grape', 103), ('apple', 29), ('banana', 3)]
मैं जानता हूँ कि मैं की तरह कुछ के साथ इसे हल कर सकते हैं:
def group(l):
result = []
if l:
this_label = l[0][0]
this_count = 0
for label, count in l:
if label != this_label:
result.append((this_label, this_count))
this_label = label
this_count = 0
this_count += count
result.append((this_label, this_count))
return result
लेकिन वहाँ एक मो है ऐसा करने के लिए पाइथोनिक/सुरुचिपूर्ण/कुशल तरीका?
मुझे 'लैम्ब्डा' के स्थान पर 'operator.itemgetter' के उपयोग को पसंद है। – jathanism
इस सूची को पहली कुंजी पर सॉर्ट करने की आवश्यकता है। यदि यह पहले से सॉर्ट नहीं किया गया है, तो ghostdog74 से डिफ़ॉल्ट डिक्शन दृष्टिकोण एक बेहतर समाधान है। –