ขึ้นอยู่กับความต้องการของการวิเคราะห์ข้อมูลของเรา เราอาจต้องตรวจสอบการมีอยู่ของหมายเลขลำดับในที่เก็บข้อมูลหลาม ในโปรแกรมด้านล่าง เราจะพบว่าในองค์ประกอบของ Alist มีตัวเลขต่อเนื่องกันหรือไม่
มีช่วงและเรียงลำดับ
ฟังก์ชัน sorted จะจัดเรียงองค์ประกอบของรายการใหม่ตามลำดับการจัดเรียง จากนั้นเราใช้ฟังก์ชันช่วงโดยใช้ตัวเลขต่ำสุดและสูงสุดจากรายการโดยใช้ฟังก์ชัน min และ max เราเก็บผลลัพธ์ของการดำเนินการข้างต้นไว้ในสองรายการและเปรียบเทียบเพื่อความเท่าเทียมกัน
ตัวอย่าง
listA = [23,20,22,21,24]
sorted_list = sorted(listA)
#sorted(l) ==
range_list=list(range(min(listA), max(listA)+1))
if sorted_list == range_list:
print("listA has consecutive numbers")
else:
print("listA has no consecutive numbers")
# Checking again
listB = [23,20,13,21,24]
sorted_list = sorted(listB)
#sorted(l) ==
range_list=list(range(min(listB), max(listB)+1))
if sorted_list == range_list:
print("ListB has consecutive numbers")
else:
print("ListB has no consecutive numbers") ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
listA has consecutive numbers ListB has no consecutive numbers
ด้วยความแตกต่างและเรียงตามลำดับ
ฟังก์ชัน diff ใน numpy สามารถค้นหาความแตกต่างระหว่างตัวเลขแต่ละตัวหลังจากที่จัดเรียงแล้ว เราใช้ผลรวมของความแตกต่างนี้ ซึ่งจะตรงกับความยาวของรายการหากตัวเลขทั้งหมดอยู่ติดกัน
ตัวอย่าง
import numpy as np
listA = [23,20,22,21,24]
sorted_list_diffs = sum(np.diff(sorted(listA)))
if sorted_list_diffs == (len(listA) - 1):
print("listA has consecutive numbers")
else:
print("listA has no consecutive numbers")
# Checking again
listB = [23,20,13,21,24]
sorted_list_diffs = sum(np.diff(sorted(listB)))
if sorted_list_diffs == (len(listB) - 1):
print("ListB has consecutive numbers")
else:
print("ListB has no consecutive numbers") ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
listA has consecutive numbers ListB has no consecutive numbers