Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah teknik yang cekap untuk pengaturcaraan Python?

Apakah teknik yang cekap untuk pengaturcaraan Python?

PHPz
PHPzke hadapan
2023-04-26 19:52:061358semak imbas

Terbalikkan senarai

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():

rreee

Kedua-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

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.

Membulat ke dalam fungsi

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?

Apakah teknik yang cekap untuk pengaturcaraan Python?Apakah teknik yang cekap untuk pengaturcaraan Python?

Seperti yang anda lihat, menggunakan gelung for di dalam fungsi adalah lebih pantas sedikit.

Kurangkan bilangan panggilan fungsi

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!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam