सूचियों का उपयोग करके डेटा विश्लेषण के दौरान कई बार हम ऐसी स्थिति का सामना करते हैं जहां हमें यह पता लगाना होता है कि दिया गया तत्व दी गई सूची में कम से कम N बार मौजूद है या नहीं। उदाहरण के लिए, यदि 5 सूची में कम से कम तीन बार मौजूद है या नहीं। इस लेख में हम इसे प्राप्त करने के 2 दृष्टिकोण देखेंगे।
घटनाओं की गिनती
नीचे दिए गए दृष्टिकोण में हम संख्या और उसकी घटनाओं को इनपुट के रूप में लेते हैं। फिर हम घटनाओं की गिनती रखने के लिए एक लूप डिज़ाइन करते हैं। यदि गिनती का मान आवश्यक मान से अधिक या बराबर है तो हम परिणाम को True प्रिंट करते हैं अन्यथा False।
उदाहरण
listA = [1, 3, 5, 5, 4, 5] # दी गई सूची
print("Given list: ", listA)
# जांचा जाने वाला तत्व
elem = 5
# घटनाओं की संख्या
N = 3
res = 0
for e in listA:
if e == elem:
res = res + 1
if res >= N:
res = True
else:
res = False
# परिणाम प्रिंट करें
print("Does %d occur atleast %d times ? :" % (elem, N), res)
उपरोक्त कोड चलाने से हमें निम्न परिणाम मिलता है:
आउटपुट
Given list: [1, 3, 5, 5, 4, 5] Does 5 occur atleast 3 times ? : True
islice और next का उपयोग करके
इस दृष्टिकोण में हम मूल सूची से दिए गए संख्या को समाहित करने वाली एक नई सूची बनाते हैं। इस नई सूची में दिए गए संख्या की सभी घटनाओं को True के रूप में चिह्नित किया जाता है। फिर हम एक islice मेथड डिज़ाइन करते हैं जो गणना करेगा कि नई सूची में आवश्यक संख्या में True मान मौजूद हैं या नहीं। तदनुसार आवश्यक मानों की संख्या True या False के रूप में चिह्नित की जाती है।
उदाहरण
from itertools import islice
listA = [2, 11, 9, 2, 4, 2] # दी गई सूची
print("Given list: ", listA)
# जांचा जाने वाला तत्व
elem = 2
# घटनाओं की संख्या
N = 3
elem_list = []
# बनाएं
for i in listA:
if i == elem:
elem_list.append(True)
res = next(islice(elem_list, N-1, None), False)
# परिणाम प्रिंट करें
print("Does %d occur atleast %d times ? :" % (elem, N), res)
उपरोक्त कोड चलाने से हमें निम्न परिणाम मिलता है:
आउटपुट
Given list: [2, 11, 9, 2, 4, 2] Does 2 occur atleast 3 times ? : True
सरल और पायथनिक तरीका:
def occurs_at_least(lst, elem, n):
return lst.count(elem) >= n
# या
def occurs_at_least(lst, elem, n):
from collections import Counter
return Counter(lst)[elem] >= n
print(occurs_at_least([1, 3, 5, 5, 4, 5], 5, 3)) # True