หาตัวเลขที่ขาดหายในช่วงของ Sorted List
กำหนดลิสต์ตัวเลขเรียงจากน้อยไปมาก หาตัวเลขที่ขาดหายในช่วงจากค่าน้อยสุดถึงค่ามากสุด
วิธีที่ 1: ใช้ range และ list comprehension
lst = [1,5,6,7,11,14]
missing = [x for x in range(lst[0], lst[-1]+1) if x not in lst]
print(missing) # [2,3,4,8,9,10,12,13]
วิธีที่ 2: ใช้ zip() เปรียบเทียบค่าติดกัน
lst = [1,5,6,7,11,14]
missing = []
for a, b in zip(lst, lst[1:]):
if b - a > 1:
missing.extend(range(a+1, b))
print(missing) # [2,3,4,8,9,10,12,13]