Intelligenter Kontaktmanager
Teil des Abschnitts Logic & Flow der Python-Journey von Coddy — Lektion 76 von 78.
Aufgabe
MittelErstellen Sie eine Funktion namens organize_contacts, die eine Liste von Kontakt-Dictionaries verarbeitet, um eine bereinigte Kontaktdatenbank zu erstellen.
Jedes Kontakt-Dictionary in der Eingabeliste hat diese Schlüssel:
name: Der Name der Personemail: Die E-Mail-Adresse der Personphone: Die Telefonnummer der Person
Ihre Funktion sollte:
- Duplikate entfernen (Kontakte mit derselben E-Mail oder Telefonnummer), wobei das erste Vorkommen beibehalten wird
- Alle E-Mails auf Kleinschreibung standardisieren
- Kontakte mit ungültigen E-Mail-Adressen herausfiltern
- Kontakte mit ungültigen Telefonnummern herausfiltern
- Eine Liste der bereinigten Kontakt-Dictionaries zurückgeben
Validierungsregeln:
- Gültige E-Mail: Muss '@' und '.' enthalten und darf keine Leerzeichen enthalten
- Gültige Telefonnummer: Muss genau 10 Ziffern enthalten (ignorieren Sie Nicht-Ziffern-Zeichen wie Bindestriche oder Klammern)
Zum Bereinigen von Telefonnummern sollten Sie Pythons str.isdigit()-Methode verwenden, um nur die numerischen Ziffern aus den Telefonnummern zu extrahieren. Diese Methode gibt True zurück, wenn ein Zeichen eine Ziffer (0-9) ist, und andernfalls False, was sie perfekt zum Herausfiltern von Nicht-Ziffern-Zeichen macht.
Beispiel-Eingabe:
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 (Kleinschreibung) und Telefon (nur Ziffern)
# - Prüfen, ob E-Mail und Telefon gültig sind
# - Auf Duplikate prüfen
# 3. Gib die bereinigte Kontaktliste zurück
passAlle Lektionen in Logic & Flow
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