Apakah teknik yang cekap untuk pengaturcaraan Python?

PHPz
Lepaskan: 2023-04-26 19:52:06
ke hadapan
1401 orang telah melayarinya

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
Salin selepas log masuk

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
Salin selepas log masuk

Untuk menukar nilai variable_1 dan variable_2, hanya satu baris kod diperlukan.

variable_1 = 100 
variable_2 = 500
Salin selepas log masuk

Anda juga boleh menggunakan helah yang sama dengan kamus:

variable_1, variable_2 = variable_2, variable_1
Salin selepas log masuk

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]
Salin selepas log masuk

Buat dua fungsi dengan gelung for di dalam dan di luar fungsi, bermula dengan mudah.

list_of_strings = ['apple','orange','banana','pineapple','grape']
Salin selepas log masuk

dan fungsi for dengan gelung:

def only_function(x):
    new_string = x.capitalize()
    out_putstring = x + " " + new_string
    print(output_string)
Salin selepas log masuk

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)
Salin selepas log masuk

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
Salin selepas log masuk

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!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan