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

ตรวจสอบว่าลิสต์เพิ่มขึ้นอย่างเคร่งครัดใน Python

ได้รับลิสต์มา เราอาจต้องตรวจสอบลำดับขององค์ประกอบ ในบทความนี้เราจะตรวจสอบว่าองค์ประกอบในลิสต์อยู่ในลำดับเพิ่มขึ้นอย่างเคร่งครัดหรือไม่ โปรแกรมด้านล่างบรรลุวัตถุประสงค์นั้น

ด้วย all และ zip

ในวิธีนี้เราตัดสไลด์แต่ละองค์ประกอบเปรียบเทียบค่ากับองค์ประกอบถัดไปที่ตัดสไลด์ ถ้าการเปรียบเทียบทั้งหมดเป็นจริง เราสรุปว่าลิสต์เรียงเพิ่มขึ้นอย่างเคร่งครัด

ตัวอย่าง

listA = [11, 23, 42, 51, 67] # Given list
print("Given list : ", listA)
# Apply all and range
if (all(i < j for i, j in zip(listA, 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(i < j for i, j in zip(listB, listB[1:]))):
    print("Yes, List is sorted.")
else:
    print("No, List is not sorted.")

Output

การรันโค้ดข้างต้นให้ผลลัพธ์ดังนี้ -

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

ด้วย itertools.starmap

ฟังก์ชันนี้สร้าง iterator ที่คำนวณฟังก์ชันโดยใช้ arguments ที่ได้จาก iterable เรา zip ลิสต์ขององค์ประกอบหลังจากตัดสไลด์ทีละตัวแล้วนำไปผ่านตัวดำเนินการน้อยกว่าหรือเท่ากัน โปรดสังเกตเราใช้สตริงแทนตัวเลขในตัวอย่างด้านล่าง

ตัวอย่าง

import operator
import itertools
listA = ['Mon','Tue','Sun'] # Given list
print("Given list : ", listA)
# Apply all and range
if all(itertools.starmap(operator.le, zip(listA, listA[1:]))):
    print("Yes, List is sorted.")
else:
    print("No, List is not sorted.")
# Checking again
listB = ['Mon','Sun','Tue']
print("Given list : ", listB)
# Apply all and range
if all(itertools.starmap(operator.le, zip(listB, listB[1:]))):
    print("Yes, List is sorted.")
else:
    print("No, List is not sorted.")

Output

การรันโค้ดข้างต้นให้ผลลัพธ์ดังนี้ -

Given list : ['Mon', 'Tue', 'Sun']
No, List is not sorted.
Given list : ['Mon', 'Sun', 'Tue']
Yes, List is sorted.