Computer >> Máy Tính >  >> Lập trình >> Python

Tìm các số còn thiếu trong một phạm vi danh sách được sắp xếp bằng Python

Đưa ra một danh sách với các số đã được sắp xếp, chúng tôi muốn tìm ra những số nào còn thiếu trong dãy số đã cho.

Với phạm vi

chúng ta có thể thiết kế một vòng lặp for để kiểm tra dải số và sử dụng điều kiện if với toán tử not in để kiểm tra các phần tử bị thiếu.

Ví dụ

listA = [1,5,6, 7,11,14]

# Original list
print("Given list : ",listA)

# using range
res = [x for x in range(listA[0], listA[-1]+1)
                              if x not in listA]
# Result
print("Missing elements from the list : \n" ,res)

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

Given list : [1, 5, 6, 7, 11, 14]
Missing elements from the list :
[2, 3, 4, 8, 9, 10, 12, 13]

với ZIP

Hàm ZIP

Ví dụ

listA = [1,5,6, 7,11,14]

# printing original list
print("Given list : ",listA)

# using zip
res = []
for m,n in zip(listA,listA[1:]):
   if n - m > 1:
      for i in range(m+1,n):
         res.append(i)

# Result
print("Missing elements from the list : \n" ,res)

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

Given list : [1, 5, 6, 7, 11, 14]
Missing elements from the list :
[2, 3, 4, 8, 9, 10, 12, 13]