Intelligenter Kontaktmanager
Teil des Abschnitts Logik und Ablaufsteuerung der Python-Journey von Coddy. Lektion 76 von 78.
Aufgabe
MittelErstelle eine Funktion namens organize_contacts, die eine Liste von Kontaktdictionaries verarbeitet, um eine übersichtliche Kontaktdatenbank zu erstellen.
Jedes Kontaktdictionary in der Eingabeliste enthält diese Schlüssel:
name: Der Name der Personemail: Die E-Mail-Adresse der Personphone: Die Telefonnummer der Person
Deine Funktion sollte:
- Doppelte Kontakte entfernen (Kontakte mit derselben E-Mail-Adresse oder Telefonnummer), wobei das erste Vorkommen beibehalten wird
- Alle E-Mail-Adressen in Kleinbuchstaben standardisieren
- Kontakte mit ungültigen E-Mail-Adressen herausfiltern
- Kontakte mit ungültigen Telefonnummern herausfiltern
- Eine Liste bereinigter Kontaktdictionaries zurückgeben
Validierungsregeln:
- Gültige E-Mail-Adresse: Muss ein „@“ und einen „.“ enthalten und darf keine Leerzeichen enthalten
- Gültige Telefonnummer: Muss genau 10 Ziffern enthalten (nicht numerische Zeichen wie Bindestriche oder Klammern werden ignoriert)
Zum Bereinigen von Telefonnummern solltest du Pythons Methode str.isdigit() verwenden, um nur die numerischen Ziffern aus Telefonnummern zu extrahieren. Diese Methode gibt True zurück, wenn ein Zeichen eine Ziffer (0–9) ist, und andernfalls False, wodurch sie sich perfekt zum Herausfiltern nicht numerischer Zeichen eignet.
Beispieleingabe:
contacts = [
{"name": "John Doe", "email": "john@email.com", "phone": "123-456-7890"}
]Erwartete Ausgabe:
[
{"name": "John Doe", "email": "john@email.com", "phone": "1234567890"}
]Probier es selbst
def organize_contacts(contact_list):
# Deine Lösung hier
# 1. Erstelle Hilfsfunktionen zur Validierung
# - Funktion zur Validierung des E-Mail-Formats
# - Funktion zum Bereinigen und Validieren von Telefonnummern
# 2. Verarbeite jeden Kontakt
# - E-Mail bereinigen (Kleinbuchstaben) und Telefon (nur Ziffern)
# - Prüfe, ob E-Mail und Telefon gültig sind
# - Auf Duplikate prüfen
# 3. Gib die bereinigte Kontaktliste zurück
passAlle Lektionen in Logik und Ablaufsteuerung
1Variablen-Erkundung
KonstantenMehrfache VariablenzuweisungenVariablen tauschenPlatzhalter-VariablenZahlen rundenListen-Casting4Kontaktbuch-Anwendung
Menü anzeigenKontakt hinzufügen7Sets Teil 2
Mathematische Operationen Teil 1Mathematische Operationen Teil 2Rückblick – SchatzsucheTeilmengen und ObermengenIterieren über SetsRückblick – Turnier-Tracker10Grundlagen der List Comprehensions
Die SyntaxEinfache Listen erstellenBedingungen hinzufügenDatenaggregation nutzenRückblick - House Of ListsRückblick - Elements Of Freedom13Bestandsverwaltungssystem
ProjektübersichtArtikel hinzufügen2Dictionaries Teil 1
Was ist ein Dictionary?Ein Dictionary erstellenZugriff auf WerteDictionaries ändernRückblick – Rezept-Manager5Fortgeschrittene Entscheidungsfindung
Ternärer OperatorZugehörigkeitsprüfungenIdentitätsprüfungenEinrückungsfehlerZusammenfassung - Urlaubsfilter8Studenten-Datenverwaltung
ProjektübersichtStudent hinzufügen11Fortgeschrittene Funktionen
Mehrere Werte zurückgebenLambda-Funktionen Teil 1Lambda-Funktionen Teil 2Recap Challenge – Lambda SortRekursive Funktionen Teil 1Rekursive Funktionen Teil 2Recap – Verschachtelte Listen summieren14Funktionen höherer Ordnung
Die Map-FunktionDie Filter-FunktionWiederholung – E-Mail-ValidatorWiederholung – Zahlenprozessor3Dictionaries Teil 2
Dictionary-MethodenVerschachtelte DictionariesKeys überprüfenDictionaries durchlaufenZusammenfassung – Häufigkeitszähler9Fortgeschrittene Datenaggregation
Verwendung von SumMinimum und Maximum findenDaten effizient sortierenRückblick - Dictionary Sorter12Grundlagen der Fehlerbehandlung
Was ist Fehlerbehandlung?Der Try- und Except-BlockBehandlung mehrerer ExceptionsRückblick – Warenkorb-FehlerÜbe selbstständig: Online-Python-Compiler