কম্পিউটার

পাইথন - সংলগ্ন বুলিয়ান রেঞ্জ


মানগুলির একটি তালিকা দেওয়া হলে, আমরা জানতে আগ্রহী যে কোন অবস্থানে বুলিয়ান মানগুলি একটি সংলগ্ন তালিকা হিসাবে উপস্থিত রয়েছে। যার অর্থ হল আমরা একটি মান সম্মুখীন হওয়ার পর যা সত্য সেখানে সেই অবস্থান থেকে সত্যের একটি ক্রমাগত মান থাকে যতক্ষণ না FALSE মান পাওয়া যায়। একইভাবে যখন একটি মিথ্যা পাওয়া যায় তখন সত্য না পাওয়া পর্যন্ত মিথ্যার একটি সংলগ্ন মান থাকে৷

itertools সহ

W itertools মডিউল থেকে groupby এর সাথে accumulate ব্যবহার করতে পারে। এই উদাহরণে আমরা একটি প্রদত্ত তালিকা নিই এবং তারপর যোগফল ফাংশন ব্যবহার করে একত্রিত হওয়া মানগুলির ট্র্যাক রাখতে অ্যাকুমুলেট ফাংশনটি প্রয়োগ করি৷ তালিকার শেষ মান হল শেষ অবস্থান যেখানে প্রদত্ত তালিকা শেষ হয়৷

উদাহরণ

from itertools import accumulate, groupby

# Given list
listA = [False, True,True,False,False]

print("Given list : \n",listA)

# Applying accumulate
res = [0] + list(accumulate(sum(1 for x in y)
for x, y in groupby(listA)))

# Result
print("Positions for Range of contigous values:\n ",res)

আউটপুট

উপরের কোডটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয় -

Given list :
[False, True, True, False, False]
Positions for Range of contigous values:
[0, 1, 3, 5]

গণনা ব্যবহার করে

জিপ ফাংশন সহ গণনা ফাংশনটি পরবর্তীটির সাথে প্রতিটি উপাদানের তুলনা করে অবস্থান তালিকাভুক্ত করতে ব্যবহৃত হয়। যদি তারা সমান না হয় তবে একটি নতুন অবস্থানের মান সন্নিহিত পরিসরের স্টারিং পয়েন্ট হিসাবে বিবেচিত হয়৷

উদাহরণ

# Given list
listA = [False, True,True,False,False]

print("Given list : \n",listA)

# Applying enumerate
res = [e for e, (x, y) in
enumerate(zip([2]+ listA, listA + [2])) if x != y]

# Result
print("Positions for Range of contigous values:\n ",res)

আউটপুট

উপরের কোডটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয় -

Given list :
[False, True, True, False, False]
Positions for Range of contigous values:
[0, 1, 3, 5]

  1. পাইথনে বুলিয়ান ইনডেক্সিং

  2. পাইথনে id() ফাংশন

  3. পাইথন বুলিয়ান অপারেশন

  4. পাইথনে বুলিয়ান অপারেটর কি?