Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Kiểm tra danh sách có tăng dần chặt chẽ trong Python


Cho một danh sách, chúng ta có thể cần kiểm tra trình tự của các phần tử. Trong bài viết này, chúng ta sẽ xác định xem các phần tử trong danh sách có theo thứ tự tăng dần chặt chẽ hay không. Các chương trình dưới đây đạt được mục tiêu này.

Sử dụng all và zip

Trong cách tiếp cận này, chúng ta trước tiên cắt từng phần tử và so sánh giá trị của nó với phần tử tiếp theo được cắt. Nếu tất cả các so sánh đều đúng, chúng ta kết luận danh sách là tăng dần chặt chẽ.

Ví dụ

listA = [11,23,42,51,67] #Danh sách cho trước print("Danh sách cho trước : ",listA) # Áp dụng all và range if (all(i < j for i, j in zip(listA, listA[1:]))):    print("Có, Danh sách đã sắp xếp.") else:    print("Không, Danh sách chưa sắp xếp.") # Kiểm tra lại listB = [11,23,21,51,67] print("Danh sách cho trước : ",listB) # Áp dụng all và range if (all(i < j for i, j in zip(listB, listB[1:]))):    print("Có, Danh sách đã sắp xếp.") else:    print("Không, Danh sách chưa sắp xếp.")

Kết quả

Chạy mã trên cho kết quả sau −

Danh sách cho trước : [11, 23, 42, 51, 67] Có, Danh sách đã sắp xếp. Danh sách cho trước : [11, 23, 21, 51, 67] Không, Danh sách chưa sắp xếp.

Sử dụng itertools.starmap

Phương pháp này tạo một iterator tính toán hàm sử dụng các đối số từ iterable. Chúng ta zip danh sách các phần tử sau khi cắt chúng lần lượt và áp dụng toán tử nhỏ hơn hoặc bằng. Lưu ý: ví dụ dưới đây sử dụng chuỗi thay vì số.

Ví dụ

import operator import itertools listA = ['Mon','Tue','Sun'] #Danh sách cho trước print("Danh sách cho trước : ",listA) # Áp dụng all và range if all(itertools.starmap(operator.le,    zip(listA, listA[1:]))): print("Có, Danh sách đã sắp xếp.") else:    print("Không, Danh sách chưa sắp xếp.") # Kiểm tra lại listB = ['Mon','Sun','Tue'] print("Danh sách cho trước : ",listB) # Áp dụng all và range if all(itertools.starmap(operator.le,    zip(listB, listB[1:]))):    print("Có, Danh sách đã sắp xếp.") else:    print("Không, Danh sách chưa sắp xếp.")

Kết quả

Chạy mã trên cho kết quả sau −

Danh sách cho trước : ['Mon', 'Tue', 'Sun'] Không, Danh sách chưa sắp xếp. Danh sách cho trước : ['Mon', 'Sun', 'Tue'] Có, Danh sách đã sắp xếp.