4
เหตุใดการคัดลอกรายการแบบสับจึงช้ากว่ามาก
การคัดลอกrange(10**6)รายการแบบสับสิบครั้งใช้เวลาประมาณ 0.18 วินาที: (นี่คือการรันห้าครั้ง) 0.175597017661 0.173731403198 0.178601711594 0.180330912952 0.180811964451 การคัดลอกรายการที่ไม่ได้สับสิบครั้งใช้เวลาประมาณ 0.05 วินาที: 0.058402235973 0.0505464636856 0.0509734306934 0.0526022752744 0.0513324916184 นี่คือรหัสทดสอบของฉัน: from timeit import timeit import random a = range(10**6) random.shuffle(a) # Remove this for the second test. a = list(a) # Just an attempt to "normalize" the list. for _ in range(5): …