Pengelola Kontak Cerdas
Termasuk bagian Logika dan Alur dalam perjalanan Python di Coddy. Pelajaran 76 dari 78.
Tantangan
SedangBuat fungsi bernama organize_contacts yang memproses list dictionary kontak untuk membuat database kontak yang bersih.
Setiap dictionary kontak dalam list input memiliki kunci berikut:
name: Nama orangemail: Alamat email orang tersebutphone: Nomor telepon orang tersebut
Fungsimu harus:
- Menghapus kontak duplikat, yaitu kontak dengan email atau nomor telepon yang sama, dan mempertahankan kemunculan pertama
- Menstandarkan semua email menjadi huruf kecil
- Menyaring kontak dengan alamat email yang tidak valid
- Menyaring kontak dengan nomor telepon yang tidak valid
- Mengembalikan list dictionary kontak yang sudah dibersihkan
Aturan validasi:
- Email valid: Harus berisi '@' dan '.', serta tidak boleh memiliki spasi
- Telepon valid: Harus berisi tepat 10 digit, abaikan karakter nondigit seperti tanda hubung atau tanda kurung
Untuk membersihkan nomor telepon, gunakan method str.isdigit() dari Python untuk mengekstrak hanya digit numerik dari nomor telepon. Method ini mengembalikan True jika sebuah karakter adalah digit (0-9), dan False jika tidak, sehingga sangat cocok untuk menyaring karakter nondigit.
Contoh Input:
contacts = [
{"name": "John Doe", "email": "john@email.com", "phone": "123-456-7890"}
]Output yang Diharapkan:
[
{"name": "John Doe", "email": "john@email.com", "phone": "1234567890"}
]Coba sendiri
def organize_contacts(contact_list):
# Tulis solusimu di sini
# 1. Buat fungsi bantuan untuk validasi
# - Fungsi untuk memvalidasi format email
# - Fungsi untuk membersihkan dan memvalidasi nomor telepon
# 2. Proses setiap kontak
# - Bersihkan email (jadikan huruf kecil) dan nomor telepon (hanya angka)
# - Periksa apakah email dan nomor telepon valid
# - Periksa apakah ada duplikat
# 3. Kembalikan list kontak yang sudah dibersihkan
passSemua pelajaran di Logika dan Alur
1Eksplorasi Variabel
KonstantaPenugasan Beberapa VariabelMenukar VariabelVariabel PenampungPembulatan AngkaKonversi ke list4Aplikasi Buku Kontak
Tampilkan MenuTambahkan Kontak7Set Bagian 2
Operasi Matematika Bagian 1Operasi Matematika Bagian 2Ulasan: Berburu Harta KarunSubset dan SupersetMelakukan Perulangan pada SetUlasan: Pelacak Turnamen10Dasar list comprehension
SintaksnyaMembuat list sederhanaMenambahkan kondisiMenggunakan agregasi dataRangkuman: Rumah ListRangkuman: Elemen Kebebasan13Sistem Manajemen Inventaris
Ikhtisar ProyekTambahkan Barang2dictionary Bagian 1
Apa Itu dictionary?Membuat dictionaryMengakses NilaiMengubah dictionaryRangkuman: Pengelola Resep5Pengambilan Keputusan Lanjutan
Operator TernaryPemeriksaan KeanggotaanPemeriksaan IdentitasError IndentasiRangkuman: Filter Liburan8Pengelola Data Siswa
Gambaran Umum ProyekTambah Siswa3dictionary Bagian 2
Method pada dictionarydictionary BersarangMemeriksa keyMenelusuri dictionary dengan perulanganRingkasan: Penghitung Frekuensi9Agregasi Data Lanjutan
Menggunakan SumMenemukan Nilai Minimum dan MaksimumMengurutkan Data dengan EfisienRangkuman: Pengurut dictionaryLatihan sendiri: Compiler Python online