9
คู่จากรายการเดียว
บ่อยครั้งที่ฉันพบว่าจำเป็นต้องประมวลผลรายการทีละคู่ ฉันสงสัยว่าวิธีใดจะเป็นวิธีที่มีประสิทธิภาพและมีประสิทธิภาพและพบสิ่งนี้ใน Google pairs = zip(t[::2], t[1::2]) ฉันคิดว่านั่นเพียงพอแล้ว แต่หลังจากการสนทนาล่าสุดเกี่ยวกับสำนวนเทียบกับประสิทธิภาพฉันตัดสินใจทำการทดสอบบางอย่าง: import time from itertools import islice, izip def pairs_1(t): return zip(t[::2], t[1::2]) def pairs_2(t): return izip(t[::2], t[1::2]) def pairs_3(t): return izip(islice(t,None,None,2), islice(t,1,None,2)) A = range(10000) B = xrange(len(A)) def pairs_4(t): # ignore value of t! t = B return izip(islice(t,None,None,2), islice(t,1,None,2)) …