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
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
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 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
Untuk menukar nilai variable_1
dan variable_2
, hanya satu baris kod diperlukan.
variable_1, variable_2 = variable_2, variable_1
Anda juga boleh menggunakan helah yang sama dengan kamus:
md[key_2], md[key_1] = md[key_1], md[key_2]
Helah ini mengelakkan berbilang lelaran dan transformasi data yang kompleks, sekali gus mengurangkan masa pelaksanaan.
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']
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)
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)
Jelas sekali, output kedua-dua fungsi ini adalah sama.
Kemudian, mari kita bandingkan, yang manakah lebih cepat?
如您所见,在函数内使用 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
不要将重复操作的内容作为参数放在循环条件中,避免重复操作。
# 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
要在模块 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):
Atas ialah kandungan terperinci Empat petua cekap dalam Python!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!