Hai semua, saya somenzz, hari ini kita akan mengkaji kaedah gelung terpantas dalam Python.
Contohnya ada satu tugasan mudah iaitu menjumlahkan dari 1 hingga 100 juta Kita boleh mencapainya sekurang-kurangnya dalam 7 cara, disenaraikan seperti berikut:
def while_loop(n=100_000_000): i = 0 s = 0 while i < n: s += i i += 1 return s
def for_loop(n=100_000_000): s = 0 for i in range(n): s += i return s
def sum_range(n=100_000_000): return sum(range(n))
def sum_generator(n=100_000_000): return sum(i for i in range(n))
def sum_list_comp(n=100_000_000): return sum([i for i in range(n)])
import numpy def sum_numpy(n=100_000_000): return numpy.sum(numpy.arange(n, dtype=numpy.int64))
import numpy def sum_numpy_python_range(n=100_000_000): return numpy.sum(range(n))
import timeit def main(): l_align = 25 print(f'{"1、while 循环":<{l_align}} {timeit.timeit(while_loop, number=1):.6f}') print(f"{'2、for 循环':<{l_align}}{timeit.timeit(for_loop, number=1):.6f}") print(f'{"3、sum range":<{l_align}} {timeit.timeit(sum_range, number=1):.6f}') print(f'{"4、sum generator":<{l_align}} {timeit.timeit(sum_generator, number=1):.6f}') print(f'{"5、sum list comprehension":<{l_align}} {timeit.timeit(sum_list_comp, number=1):.6f}') print(f'{"6、sum numpy":<{l_align}} {timeit.timeit(sum_numpy, number=1):.6f}') print(f'{"7、sum numpy python range":<{l_align}} {timeit.timeit(sum_numpy_python_range, number=1):.6f}') if __name__ == '__main__': main()
untuk dan sementara pada dasarnya adalah melakukan perkara yang sama, tetapi sementara adalah kod Python tulen, dan untuk panggilan sambungan C untuk menambah dan mengehadkan pembolehubah C. Gelung while mewakili Python, jadi for adalah lebih pantas daripada while.
Penggunaan silang akan menjadi lebih perlahan
Penjana lebih pantas daripada pemahaman senarai
Atas ialah kandungan terperinci Berapa banyak kaedah gelung pantas yang anda tahu dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!