ডেটা বিশ্লেষণের প্রয়োজনমতো পাইথন ডেটা কন্টেইনারে সিকোয়েনসিয়াল নম্বর থাকা আছে কিনা তা যাচাই করতে হয়। নিচের প্রোগ্রামগুলোতে একটি লিস্টের উপাদানগুলোর মধ্যে কোনো কনsekutিভ নম্বর আছে কিনা তা বের করা হয়েছে।
range এবং sorted ফাংশন ব্যবহার করে
sorted ফাংশন লিস্টের উপাদানগুলিকে সর্টেড ক্রমে সাজায়। তারপর min এবং max ফাংশন ব্যবহার করে লিস্টের সর্বনিম্ন ও সর্বোচ্চ সংখ্যা নিয়ে range ফাংশন প্রয়োগ করা হয়। দুটি লিস্টের ফলাফল তুলনা করে সমতা যাচাই করা হয়।
উদাহরণ
listA = [23, 20, 22, 21, 24]
sorted_list = sorted(listA)
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")
# আবার যাচাই
listB = [23, 20, 13, 21, 24]
sorted_list = sorted(listB)
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
numpy diff এবং sorted ফাংশন ব্যবহার করে
numpy-এর diff ফাংশন সর্টেড সংখ্যাগুলোর পার্থক্য বের করে। এই পার্থক্যগুলোর যোগফল যদি লিস্টের দৈর্ঘ্য থেকে ১ বাদ দিয়ে সমান হয়, তবে সব সংখ্যা কনsekutিভ।
উদাহরণ
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")
# আবার যাচাই
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