একটি লিস্টে নির্দিষ্ট মান K-এর কনsekutিভ (লাগাতার) রেঞ্জগুলো খুঁজে বের করতে হবে যেগুলোর দৈর্ঘ্য N-এর চেয়ে বড় বা সমান। এজন্য enumerate এবং সাধারণ ইটেরেশন ব্যবহার করা হয়।
উদাহরণ
my_list = [3, 65, 33, 23, 65, 65, 65, 65, 65, 65, 65, 3, 65]
print("The list is :")
print(my_list)
K = 65
N = 3
print("The value of K is ")
print(K)
print("The value of N is ")
print(N)
my_result = []
beg, end = 0, 0
previous = 1
for index, element in enumerate(my_list):
if element == K:
end = index
if previous != K:
beg = index
else:
if previous == K and end - beg + 1 >= N:
my_result.append((beg, end))
previous = element
print("The result is :")
print(my_result)
আউটপুট
The list is : [3, 65, 33, 23, 65, 65, 65, 65, 65, 65, 65, 3, 65]
The value of K is 65
The value of N is 3
The result is : [(4, 10)]
ব্যাখ্যা
- লিস্ট, K এবং N ডিফাইন করা হয়।
- খালি রেজাল্ট লিস্ট,
previousভেরিয়েবল,begএবংendইনিশিয়ালাইজ করা হয়। enumerateদিয়ে লিস্ট ইটেরেট করা হয়।- যদি এলিমেন্ট K-র সমান হয়,
endআপডেট হয়। যদি আগেরটা K না হয়,begসেট হয়। - যদি এলিমেন্ট K না হয় এবং আগেরটা K ছিল, তবে রেঞ্জের দৈর্ঘ্য চেক করে রেজাল্টে যোগ করা হয়।
- ফলাফল: ইন্ডেক্স ৪ থেকে ১০ পর্যন্ত (৭টি) ৬৫ আছে যা N=3-এর চেয়ে বড়।