Tốc độ của các vòng lặp
Tất nhiên, set phù hợp hơn cho việc tìm kiếm phần tử. Nó dựa trên hàm băm (hash), vì vậy bạn có thể kỳ vọng độ phức tạp hằng số trong hầu hết trường hợp. Nhưng còn việc duyệt qua tất cả phần tử của một đối tượng thì sao? Hãy so sánh tốc độ lặp qua các phần tử của list và set bằng pytest và pytest-benchmark. Gói pytest đã được import sẵn.
Bài tập này là một phần của khóa học
Nhập môn Kiểm thử trong Python
Hướng dẫn bài tập
- Thêm decorator
@benchmarktrước các hàm bắt đầu bằngiterate_. - Hoàn thiện các vòng lặp trong
iterate_listvàiterate_set.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
def test_list(benchmark):
# Add decorator here
@____
def iterate_list():
# Complete the loop here
____ in [i for i in range(1000)]:
pass
def test_set(benchmark):
# Add decorator here
____
def iterate_set():
# Complete the loop here
____ in {i for i in range(1000)}:
pass