Empat petua cekap dalam Python!

WBOY
Lepaskan: 2023-04-11 19:49:14
ke hadapan
1191 orang telah melayarinya

Empat petua cekap dalam Python!

Terbalikkan senarai

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

$ 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

Kedua-dua kaedah boleh membalikkan senarai, tetapi ketahui bahawa fungsi terbina dalam ​​reverse()​​ akan menukar senarai asal, manakala kaedah penghirisan akan mencipta senarai baharu.

Jelas sekali, 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:

variable_1 = 100 
variable_2 = 500
Salin selepas log masuk

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

variable_1, variable_2 = variable_2, variable_1
Salin selepas log masuk

Anda juga boleh menggunakan helah yang sama dengan kamus:

md[key_2], md[key_1] = md[key_1], md[key_2]
Salin selepas log masuk

Helah ini mengelakkan berbilang lelaran dan transformasi data yang kompleks, sekali gus mengurangkan masa pelaksanaan.

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​​ memerlukan 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!

Mula-mula buat senarai rentetan ringkas:

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

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

def only_function(x):
    new_string = x.capitalize()
    out_putstring = x + " " + new_string
    print(output_string)

Salin selepas log masuk

dan fungsi ​​for​​ dengan gelung:

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

Jelas sekali, output kedua-dua fungsi ini adalah sama.

Kemudian, mari kita bandingkan, yang manakah lebih cepat?

Empat petua cekap dalam Python!Empat petua cekap dalam Python!

如您所见,在函数内使用 ​​for​​ 循环会稍微快一些。

减少函数调用次数

判断对象的类型时,使用 ​​isinstance()​​ 最好,其次是对象类型标识 ​​id()​​,对象值 ​​type()​​ 最后。

# 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

不要将重复操作的内容作为参数放在循环条件中,避免重复操作。

# Each loop the len(a) will be called
while i < len(a):
    statement
# Only execute len(a) once
m = len(a)
while i < m:
    statement

Salin selepas log masuk

要在模块 X 中使用函数或对象 Y,请直接使用 ​​from X import Y​​ 而不是 ​​import X; then X.Y​​。这减少了使用 Y 时的一次查找(解释器不必先查找 X 模块,然后在 X 模块的字典中查找 Y)。

总而言之,你可以大量使用 Python 的内置函数。提高 Python 程序的速度,同时保持代码简洁易懂。

如果想进一步了解 Python 的内置函数,可以参考下表,或查看以下网站(https://docs.python.org/3/library/functions.html):

Empat petua cekap dalam Python!


Atas ialah kandungan terperinci Empat petua cekap dalam Python!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:51cto.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