Penapisan Kamus Lanjutan dengan Syarat Tersuai
Contoh buku ini menggambarkan penapisan kamus menggunakan fungsi item(), satu proses yang boleh diperkemas untuk kecekapan.
Pemahaman Dict Kaedah:
Python menawarkan alat yang berkuasa untuk tujuan ini: pemahaman dict. Dengan itu, anda boleh mencipta kamus baharu berdasarkan nilai sedia ada sambil menggunakan syarat tersuai. Contohnya, untuk menapis kamus mata:
points = {'a': (3, 4), 'b': (1, 2), 'c': (5, 5), 'd': (3, 3)} points_under_5 = { k: v for k, v in points.items() # Iterate over (key, value) pairs if v[0] < 5 and v[1] < 5 # Filter based on condition }
Keserasian Python 2:
Dalam Python 2 (2.7 dan seterusnya), sintaks untuk mengulangi item kamus berbeza sedikit:
points_under_5 = { k: v for k, v in points.iteritems() # Use 'iteritems()' instead of 'items()' if v[0] < 5 and v[1] < 5 }
Prestasi Pertimbangan:
Pendekatan pemahaman dict menawarkan prestasi unggul berbanding kaedah lelaran manual:
import timeit # Manual iteration manual_time = timeit.timeit( """ points={'a':(3,4), 'b':(1,2), 'c':(5,5), 'd':(3,3)} points_small={} for item in [i for i in points.items() if i[1][0]<5 and i[1][1]<5]: points_small[item[0]]=item[1] """, number=1000000 ) # Dict comprehension dict_time = timeit.timeit( """ points={'a':(3,4), 'b':(1,2), 'c':(5,5), 'd':(3,3)} points_under_5 = {k:v for k, v in points.items() if v[0]<5 and v[1]<5} """, number=1000000 ) print("Manual iteration time:", manual_time) print("Dict comprehension time:", dict_time)
Atas ialah kandungan terperinci Bagaimanakah saya boleh menapis kamus dengan cekap berdasarkan keadaan tersuai dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!