ความเร็วของลูป
แน่นอนว่า set เหมาะสำหรับการค้นหาสมาชิกมากกว่า เพราะอาศัยแฮช จึงมักใช้เวลาคงที่โดยไม่ขึ้นกับขนาดข้อมูล แต่ถ้าต้องการวนซ้ำผ่านสมาชิกทุกตัวในอ็อบเจกต์ล่ะ? มาเปรียบเทียบความเร็วของการวนลูปผ่านสมาชิกใน list และ set โดยใช้ pytest และ pytest-benchmark กัน แพ็กเกจ pytest ได้นำเข้ามาแล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Python เบื้องต้นสำหรับการทดสอบโค้ด
คำแนะนำการฝึกหัด
- เพิ่ม decorator
@benchmarkก่อนฟังก์ชันที่ขึ้นต้นด้วยiterate_ - เติมโค้ดลูปในฟังก์ชัน
iterate_listและiterate_setให้ครบ
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
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