मूल्यों की एक सूची को देखते हुए, हम यह जानने में रुचि रखते हैं कि सन्निहित सूची के रूप में बूलियन मान किस स्थिति में मौजूद हैं। जिसका अर्थ है कि जब हम एक मूल्य का सामना करते हैं जो कि TRUE होता है, तो उस स्थिति से FALSE मान मिलने तक सत्य का निरंतर मान होता है। इसी तरह जब कोई FALSE पाया जाता है तो TRUE मिलने तक FALSE का एक सन्निहित मान होता है।
itertools के साथ
W itertools मॉड्यूल से groupby के साथ जमा का उपयोग कर सकता है। इस उदाहरण में हम एक दी गई सूची लेते हैं और फिर योग फ़ंक्शन का उपयोग करके एक साथ लाए गए मानों का ट्रैक रखने के लिए संचय फ़ंक्शन लागू करते हैं। सूची में अंतिम मान अंतिम स्थिति है जहां दी गई सूची समाप्त होती है।
उदाहरण
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]