2017-08-20 5 views
0

Ich muss eine sort_contacts-Funktion schreiben, die ein Wörterbuch von Kontakten als Parameter nimmt und eine sortierte Liste dieser Kontakte zurückgibt, wobei jeder Kontakt ein Tupel ist.Wie sortiere ich eine Liste von Wörterbüchern nach dem Nachnamen des Wörterbuchs in Python?

Das Kontaktwörterbuch, das an die Funktion übergeben wird, hat den Kontaktnamen als Schlüssel, und der Wert ist ein Tupel, das die Telefonnummer und E-Mail für den Kontakt enthält.

Kontakte = {name: (Telefon, E-Mail), Name (Telefon, E-Mail) usw.}

Die sort_contacts Funktion sollte dann erstellen Sie eine neue, sortiert (nach Nachnamen) Liste von Tupeln stellt alle Kontaktinformationen dar (ein Tupel für jeden Kontakt), die im Wörterbuch vorhanden waren. Es sollte dann diese Liste an die aufrufende Funktion zurückgeben.

Zum Beispiel gegeben ein Wörterbuch Argument:

{("Horney, Karen": ("1-541-656-3010", "[email protected]"), 
    "Welles, Orson": ("1-312-720-8888", "[email protected]"), 
    "Freud, Anna": ("1-541-754-3010", "anna[email protected]")} 

sort_contacts sollte dies zurück:

[('Freud, Anna', '1-541-754-3010', '[email protected]'), 
    ('Horney, Karen', '1-541-656-3010', '[email protected]'), 
    ('Welles, Orson', '1-312-720-8888', '[email protected]')]** 
+0

Was haben Sie versucht, so weit? – user3080953

Antwort

3

Sie können einfach die key und value und sort hinzufügen:

>>> sorted((k,)+v for k, v in contacts.items()) 
[('Freud, Anna', '1-541-754-3010', '[email protected]'), 
('Horney, Karen', '1-541-656-3010', '[email protected]'), 
('Welles, Orson', '1-312-720-8888', '[email protected]')] 

Wenn Sie ein verschachteltes Tupel nicht interessieren Henne können Sie einfach:

>>> sorted(contacts.items()) 
[('Freud, Anna', ('1-541-754-3010', '[email protected]')), 
('Horney, Karen', ('1-541-656-3010', '[email protected]')), 
('Welles, Orson', ('1-312-720-8888', '[email protected]'))] 
-1
def sort_contacts(contacts): 
    real_contacts=[] 
    function_keys=contacts.keys() 

    for key in sorted(function_keys): 
     data = (key, contacts[key][0], contacts[key][1]) 
     real_contacts.append(data) 

    return real_contacts 
Verwandte Themen