Rumah > Artikel > pembangunan bahagian belakang > Apakah teknik yang cekap untuk pengaturcaraan Python?
Secara amnya terdapat dua cara untuk membalikkan senarai dalam Python: menghiris atau reverse()
panggilan fungsi. Kedua-dua kaedah boleh membalikkan senarai, tetapi ketahui bahawa fungsi terbina dalam reverse()
menukar senarai asal, manakala kaedah penghirisan mencipta senarai baharu.
Tetapi bagaimana pula dengan persembahan mereka? Cara mana yang lebih berkesan? Mari lihat contoh berikut:
Menggunakan kepingan:
$ python -m timeit -n 1000000 -s 'import numpy as np' 'mylist=list(np.arange(0, 200))' 'mylist[::-1]' 1000000 loops, best of 5: 15.6 usec per loop
Menggunakan reverse():
rreeeKedua-duanya Kedua-duanya kaedah boleh membalikkan senarai, tetapi sedar bahawa fungsi terbina dalam reverse()
menukar senarai asal, manakala kaedah penghirisan mencipta senarai baharu.
Nampaknya fungsi terbina dalam reverse()
lebih pantas daripada kaedah penghirisan senarai!
Menukar dua nilai pembolehubah dengan satu baris kod ialah pendekatan yang lebih Pythonic.
Tidak seperti bahasa pengaturcaraan lain, Python tidak memerlukan penggunaan pembolehubah sementara untuk menukar dua nombor atau nilai. Contoh mudah:
$ python -m timeit -n 1000000 -s 'import numpy as np' 'mylist=list(np.arange(0, 200))' 'mylist.reverse()' 1000000 loops, best of 5: 10.7 usec per loop
Untuk menukar nilai variable_1
dan variable_2
, hanya satu baris kod diperlukan.
variable_1 = 100 variable_2 = 500
Anda juga boleh menggunakan helah yang sama dengan kamus:
variable_1, variable_2 = variable_2, variable_1
Helah ini mengurangkan masa pelaksanaan dengan mengelakkan berbilang lelaran dan transformasi data yang kompleks.
Kita semua suka mencipta fungsi tersuai untuk melaksanakan tugas khusus kita sendiri. Kemudian gunakan for
untuk mengulangi fungsi ini, mengulangi tugasan beberapa kali.
Walau bagaimanapun, menggunakan fungsi di dalam gelung for
mengambil masa pelaksanaan yang lebih lama kerana fungsi itu dipanggil pada setiap lelaran.
Sebaliknya, jika gelung for
dilaksanakan di dalam fungsi, fungsi itu hanya akan dipanggil sekali.
Untuk menerangkan dengan lebih jelas, mari beri contoh!
Mulakan dengan mencipta senarai rentetan ringkas:
md[key_2], md[key_1] = md[key_1], md[key_2]
Buat dua fungsi dengan gelung for
di dalam dan di luar fungsi, bermula dengan mudah.
list_of_strings = ['apple','orange','banana','pineapple','grape']
dan fungsi for
dengan gelung:
def only_function(x): new_string = x.capitalize() out_putstring = x + " " + new_string print(output_string)
Jelas sekali, output kedua-dua fungsi ini adalah sama.
Kemudian, mari kita bandingkan, yang manakah lebih cepat?
Seperti yang anda lihat, menggunakan gelung for
di dalam fungsi adalah lebih pantas sedikit.
Apabila menilai jenis objek, sebaiknya gunakan isinstance()
, diikuti dengan pengecam jenis objek id()
, dan nilai objek type()
terakhir.
def for_in_function(listofstrings): for x in list_of_strings: new_string = x.capitalize() output_string = x + " " + new_string print(output_string)
Jangan letakkan kandungan operasi berulang sebagai parameter dalam keadaan gelung untuk mengelakkan operasi berulang.
# Check if num an int type type(num) == type(0) # Three function calls type(num) is type(0) # Two function calls isinstance(num,(int)) # One function call
Untuk menggunakan fungsi atau objek Y dalam modul X, gunakan from X import Y
terus dan bukannya import X; then X.Y
. Ini mengurangkan satu carian apabila menggunakan Y (jurubahasa tidak perlu terlebih dahulu mencari modul X dan kemudian mencari Y dalam kamus modul X).
Atas ialah kandungan terperinci Apakah teknik yang cekap untuk pengaturcaraan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!