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

Kiểm tra xem danh sách có được sắp xếp hay không bằng Python

Danh sách là tập hợp dữ liệu được sử dụng rộng rãi nhất trong python. Chúng ta có thể gặp phải tình huống khi chúng ta cần biết liệu danh sách đã cho đã được sắp xếp hay chưa. Trong bài viết này, chúng ta sẽ xem các cách tiếp cận để đạt được điều này.

Có sắp xếp

Chúng tôi lấy một bản sao của danh sách đã cho, áp dụng chức năng sắp xếp cho nó và lưu trữ bản sao đó dưới dạng danh sách mới. Sau đó, chúng tôi so sánh nó với danh sách ban đầu và kiểm tra xem chúng có bằng nhau hay không.

Ví dụ

listA = [11,23,42,51,67]
#Given list
print("Given list : ",listA)
listA_copy = listA[:]
# Apply sort to copy
listA_copy.sort()
if (listA == listA_copy):
   print("Yes, List is sorted.")
else:
   print("No, List is not sorted.")

# Checking again
listB = [11,23,21,51,67]
#Given list
print("Given list : ",listB)
listB_copy = listB[:]
# Apply sort to copy
listB_copy.sort()
if (listB == listB_copy):
   print("Yes, List is sorted.")
else:
   print("No, List is not sorted.")

Đầu ra

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

Given list : [11, 23, 42, 51, 67]
Yes, List is sorted.
Given list : [11, 23, 21, 51, 67]
No, List is not sorted.

Với tất cả và phạm vi

Chúng ta có thể sử dụng hàm all để kiểm tra xem mọi phần tử của danh sách có nhỏ hơn phần tử bên cạnh nó hay không và áp dụng hàm range để duyệt qua tất cả các phần tử.

Ví dụ

listA = [11,23,42,51,67]
#Given list
print("Given list : ",listA)
# Apply all and range
if (all(listA[i] <= listA[i + 1] for i in range(len(listA)-1))):
   print("Yes, List is sorted.")
else:
   print("No, List is not sorted.")
# Checking again
listB = [11,23,21,51,67]
print("Given list : ",listB)
# Apply all and range
if (all(listB[i] <= listB[i + 1] for i in range(len(listB)-1))):
   print("Yes, List is sorted.")
else:
   print("No, List is not sorted.")

Đầu ra

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

Given list : [11, 23, 42, 51, 67]
Yes, List is sorted.
Given list : [11, 23, 21, 51, 67]
No, List is not sorted.