Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

หาตัวเลขที่หายไปในช่วงของลิสต์ที่เรียงแล้วใน Python

หาตัวเลขที่ขาดหายในช่วงของ 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]