Wie zu Sortieren Wörterbuch auf erstes element des Schlüssels (Tupel)

Ich habe ein Wörterbuch, wo jeder Schlüssel ist ein Tupel von Werten, die ich verwenden möchten, die sorted() - Methode Sortieren Sie das Wörterbuch auf das erste element meiner Tupel. Mein code sieht wie folgt aus:

def mapData(header_list, dict_obj):
    master_dict = {}
    client_section_list = []
    for element in header_list:
        for row in dict_obj:
            if (row['PEOPLE_ID'], row['DON_DATE']) == element:
                client_section_list.append(row)
        element = list(element)
        element_list = [client_section_list[0]['DEDUCT_AMT'],
                    client_section_list[0]['ND_AMT'],
                    client_section_list[0]['DEDUCT_YTD'],
                    client_section_list[0]['NONDEDUCT_YTD']
                    ]
        try:
            element_list.append((float(client_section_list[0]['DEDUCT_YTD']) +
                                 float(client_section_list[0]['NONDEDUCT_YTD'])
                                 ))
        except ValueError:
            pass

    element.extend(element_list)
    element = tuple(element)
    master_dict[element] = client_section_list
    client_section_list = []
return sorted(master_dict, key=lambda key: key[master_dict[(1)]]

Die Letzte Zeile ist, wo ich versuche einen Weg zu finden, zu Sortieren. Mein Tupel wie folgt aussieht:

(312178078,6/22/15,25,0,25,0,25.0)
  • Was ist falsch mit dem code, den Sie haben?
  • Wenn die Schlüssel-Tupeln, als der dict sortiert werden, indem das erste element dieser Tupel standardmäßig. Aber wenn Sie benötigen, um eine Schlüssel-Funktion, versuchen Sie lambda key: key[0]. Schließlich ist zu beachten, dass sorted(some_dict) zurückkehren wird nur die Schlüssel in sortierter Reihenfolge, nicht die gesamte dict, d.h. Sie verlieren die Werte!
  • Sie wollen zu verwenden dict.items() im sorted Funktion, wenn Ihr Ziel ist es, dass die gesamte dictionary-Struktur. return sorted(master_dict.items(), key=lambda key: key[0][0]) sollte das tun, was Sie wollen.
InformationsquelleAutor flybonzai | 2015-08-18
Schreibe einen Kommentar