Rumah >pembangunan bahagian belakang >Tutorial Python >Map() vs. Senarai Pemahaman dalam Python: Manakah yang Lebih Cepat dan Lebih Pythonic?
Perbandingan Prestasi Python: Map() vs. Pemahaman Senarai
Dalam Python, dua alatan serba boleh untuk manipulasi data ialah map() dan senarai kefahaman. Walaupun kedua-duanya melakukan tugasan yang serupa, mungkin terdapat keadaan di mana seseorang lebih cemerlang daripada yang lain.
Adakah Satu Lebih Cekap?
Dalam kes tertentu, map() boleh menjadi sedikit. lebih cepat daripada pemahaman senarai, terutamanya apabila menggunakan fungsi yang sama untuk kedua-dua operasi. Walau bagaimanapun, pemahaman senarai mungkin menunjukkan prestasi yang lebih baik dalam senario di mana map() memerlukan fungsi lambda.
Pythonic Preference
Apabila ia datang kepada gaya pengekodan Pythonic, pemahaman senarai adalah umumnya digemari. Pythonistas sering menganggapnya lebih mudah dan jelas. Ia menyediakan cara ringkas untuk mengubah elemen data, menjadikan kod lebih mudah dibaca.
Tanda Aras Prestasi
Untuk menggambarkan perbezaan prestasi, pertimbangkan tanda aras berikut yang mempunyai fungsi yang sama (hex) digunakan:
$ python -m timeit -s'xs=range(10)' 'map(hex, xs)' 100000 loops, best of 3: 4.86 usec per loop $ python -m timeit -s'xs=range(10)' '[hex(x) for x in xs]' 100000 loops, best of 3: 5.58 usec per loop
Dalam contoh ini, map() secara mikroskopik lebih pantas disebabkan kepada ketiadaan fungsi lambda.
Walau bagaimanapun, apabila fungsi lambda diperkenalkan, perbandingan prestasi bertukar:
$ python -m timeit -s'xs=range(10)' 'map(lambda x: x+2, xs)' 100000 loops, best of 3: 4.24 usec per loop $ python -m timeit -s'xs=range(10)' '[x+2 for x in xs]' 100000 loops, best of 3: 2.32 usec per loop
Oleh itu, pilihan antara peta() dan pemahaman senarai hendaklah dinilai berdasarkan faktor seperti keperluan prestasi, kebolehbacaan kod dan prinsip Pythonic.
Atas ialah kandungan terperinci Map() vs. Senarai Pemahaman dalam Python: Manakah yang Lebih Cepat dan Lebih Pythonic?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!