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

Tìm các phần tử bị thiếu trong Danh sách bằng Python

Nếu chúng ta có một danh sách chứa các số, chúng ta có thể kiểm tra xem các số có liền nhau hay không và cũng có thể tìm thấy những số nào bị thiếu trong một dãy số coi số cao nhất là giá trị cuối cùng.

Với phạm vi và tối đa

Chúng ta có thể thiết kế một vòng lặp for để kiểm tra sự vắng mặt của các giá trị trong một phạm vi bằng cách sử dụng toán tử not in. Sau đó, nắm bắt tất cả các giá trị này bằng cách thêm chúng vào danh sách mới trở thành tập kết quả.

Ví dụ

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

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

# using range and max
res = [ele for ele in range(max(listA) + 1) if ele 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 :
[0, 2, 3, 4, 8, 9, 10, 12, 13]

với bộ

Chúng tôi áp dụng hàm set để giữ tất cả các giá trị duy nhất cho một phạm vi nhất định và sau đó lấy nó trừ danh sách đã cho. Vì vậy, điều này cung cấp cho tập kết quả chứa các giá trị bị thiếu từ các số liền kề.

Ví dụ

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

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

# using set
res = list(set(range(max(listA) + 1)) - set(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 :
[0, 2, 3, 4, 8, 9, 10, 12, 13]