मुख्य सामग्री पर जाएं

Python any() फ़ंक्शन: उदाहरणों और उपयोग मामलों के साथ गाइड

Python में any() फ़ंक्शन तब True लौटाता है जब किसी iterable (list, tuple, set, आदि) में कम-से-कम एक तत्व true हो; अन्यथा False।
अपडेट किया गया 25 सित॰ 2026  · 8 मि॰ पढ़ें

AI के साथ खोजें

ChatGPTClaudePerplexity

Python प्रोग्रामों में एक आम आवश्यकता होती है यह जाँचना कि किसी डेटा स्ट्रक्चर का कम-से-कम एक तत्व True है या नहीं।

हालाँकि आप एक लूप लिखकर iterable के हर आइटम पर इटरेट कर सकते हैं और देख सकते हैं कि वह True या False का मान देता है, लेकिन Python का any() फ़ंक्शन इस परिणाम को पाने का अधिक कुशल और Pythonic तरीका है।

यह ट्यूटोरियल Python के any() बिल्ट-इन फ़ंक्शन का विश्लेषण करता है और इसके कई उदाहरण व उपयोग मामलों को दिखाता है।

Python का any() फ़ंक्शन क्या करता है?

Python का any() एक बिल्ट-इन फ़ंक्शन है। यह एक iterable जैसे list या tuple को स्वीकार करता है और यदि iterable में कम-से-कम एक मान truthy है, तो True लौटाता है। truthy मान वह है जो bool() के जरिए Boolean में बदलने पर True का मान देता है। यदि iterable के सभी मान falsy हों, तो any() False लौटाता है:

print(any([True, False, False, True]))
print(any([False, False, False, False]))
print(any([0, 0, 5, 0]))
True
False
True

Iterable में Boolean मान या अन्य ऑब्जेक्ट हो सकते हैं, क्योंकि सभी ऑब्जेक्ट Boolean में बदले जाने पर True या False के रूप में मूल्यांकित होते हैं। तीसरे उदाहरण में सूची में चार पूर्णांक हैं। पूर्णांक 0 falsy होता है, लेकिन सभी नॉन-ज़ीरो संख्याएँ truthy होती हैं। truthy और falsy मानों के बीच अंतर बेहतर समझने के लिए, Python के लॉजिकल ऑपरेटर पर यह ब्लॉग पढ़ें।

यदि iterable खाली है, तो खाली iterable में कोई truthy मान न होने के कारण any() False लौटाता है:

print(any([]))
False

अगला खंड बताता है कि any() कैसे काम करता है।

any() कैसे काम करता है?

बिल्ट-इन any() अपने आर्ग्युमेंट के रूप में कोई भी iterable स्वीकार करता है। Iterable वह कोई भी डेटा स्ट्रक्चर है जिस पर Python लूप चला सकता है।

निम्नलिखित tuple पर विचार करें:

an_iterable = ("", 0.0, "DataCamp", False, [])

इस tuple में अलग-अलग प्रकार के कई ऑब्जेक्ट शामिल हैं। इनमें से कई ऑब्जेक्ट falsy हैं:

  • खाली स्ट्रिंग ""
  • फ़्लोट 0.0
  • Boolean False
  • खाली सूची []

ये ऑब्जेक्ट falsy हैं क्योंकि bool() को पास करने पर ये False के रूप में मूल्यांकित होते हैं।

नॉन-एम्प्टी स्ट्रिंग "DataCamp" truthy है।

यह जाँचने का एक सीधा तरीका कि कम-से-कम एक तत्व truthy है या नहीं, for लूप का उपयोग करना है:

def check_if_contains_truthy(data):
    output = False
    for item in data:
        if item:
            output = True
    return output
print(check_if_contains_truthy(an_iterable))
True

हालाँकि, यह अक्षम है क्योंकि फ़ंक्शन को केवल यह जाँचना है कि कम-से-कम एक truthy मान है या नहीं। एक बार जब यह कोई truthy मान पा लेता है, तो इसे iterable के बाकी आइटमों की जाँच जारी रखने की आवश्यकता नहीं होती। फ़ंक्शन को पहले truthy मान मिलते ही रिटर्न करने के लिए संशोधित किया जा सकता है:

def check_if_contains_truthy(data):
    for item in data:
        if item:
            return True
    return False
print(check_if_contains_truthy(an_iterable))
True

return स्टेटमेंट फ़ंक्शन के निष्पादन को रोक देता है। इसलिए, जब फ़ंक्शन पहला truthy मान पाता है, तो यह True लौटाता है और iterable पर इटरेट करना जारी नहीं रखता। फ़ंक्शन केवल तभी False लौटाता है जब for लूप iterable के सभी आइटमों पर इटरेट कर ले और उनमें से कोई भी truthy न हो।

बिल्ट-इन any() इसी पैटर्न का पालन करता है और पहले truthy मान पर शॉर्ट-सर्किट कर देता है। यह lazy evaluation अनावश्यक ऑपरेशनों को रोकती है, जिससे प्रदर्शन बेहतर होता है। Python का any() ऊपर दिखाए गए फ़ंक्शन का अधिक कुशल संस्करण है। इस बेहतर दक्षता की पुष्टि timeit मॉड्यूल के timeit() फ़ंक्शन से होती है, जो यह समय मापता है कि किसी स्टेटमेंट को निष्पादित करने में Python को कितना समय लगता है:

from timeit import timeit
print("Execution time for 'check_if_contains_truthy()'")
print(
    timeit(
        "check_if_contains_truthy(an_iterable)",
        number=10_000_000,
        globals=globals(),
    )
)
print("Execution time for 'any()'")
print(
    timeit(
        "any(an_iterable)",
        number=10_000_000,
        globals=globals(),
    )
)
Execution time for 'check_if_contains_truthy()'
0.6335119580035098
Execution time for 'any()'
0.39488654200249584

timeit() फ़ंक्शन का पहला आर्ग्युमेंट वह स्ट्रिंग है जिसमें निष्पादित किए जाने वाला स्टेटमेंट होता है। दूसरा आर्ग्युमेंट निर्धारित करता है कि स्टेटमेंट को कितनी बार चलाना है। इस उदाहरण में, सार्थक समय प्राप्त करने के लिए दोनों स्टेटमेंट 10,000,000 बार चलाए जाते हैं। अंतिम आर्ग्युमेंट ग्लोबल वैरिएबल्स को timeit() फ़ंक्शन को पास करता है।

Python का any() check_if_contains_truthy() से तेज़ है। किसी iterable में कम-से-कम एक truthy मान है या नहीं, यह जानने के लिए any() का उपयोग करना for लूप से अधिक Pythonic और अधिक कुशल है।

any() के उपयोग के मामले

आइए Python के any() के कुछ उपयोग मामलों को देखें।

जाँचें कि कम-से-कम एक उपयोगकर्ता इनपुट मान्य है

मान लें कि उपयोगकर्ता इनपुट की एक शृंखला सूची या tuple में एकत्र की गई है। प्रोग्राम को यह जाँचना पड़ सकता है कि कम-से-कम एक इनपुट मान्य है, जैसे कि वह नॉन-एम्प्टी स्ट्रिंग हो:

user_inputs = ["", "10.99", ""]
if any(user_inputs):
    print("At least one valid input present")
    # Rest of code...
else:
    print("There are no valid inputs")
At least one valid input present

क्योंकि स्ट्रिंग्स में से एक खाली नहीं है, any() True लौटाता है, और if खंड का कोड चलता है।

जाँचें कि कम-से-कम एक फ़ाइल मौजूद है

बिल्ट-इन any() का उपयोग यह जाँचने के लिए किया जा सकता है कि फ़ाइलनामों की सूची में से कम-से-कम एक फ़ाइल किसी डायरेक्टरी में मौजूद है या नहीं:

from pathlib import Path
files = ["article.md", "use_any.py", "scratch.py", "test_file.txt"]
cwd = Path.cwd()
# Create a test file to test code
Path("test_file.txt").write_text("This is a test file")
if any(Path(file).exists() for file in files):
    print("At least one of the files exists")
    # Rest of code…
else:
    print("None of the files exist")
At least one of the files exists

कोड pathlib मॉड्यूल और Path.cwd() का उपयोग करके वर्तमान कार्य डायरेक्टरी प्राप्त करता है। यह कार्य डायरेक्टरी में test_file.txt नामक फ़ाइल बनाता है ताकि इस कोड का आसानी से परीक्षण किया जा सके। वर्तमान कार्य डायरेक्टरी में कम-से-कम एक फ़ाइलनाम मौजूद है या नहीं, यह जाँचने के लिए Python का any() उपयोग किया जाता है।

किसी iterable से आइटम फ़िल्टर करें

बिल्ट-इन फ़ंक्शन any() को एक generator expression के साथ आर्ग्युमेंट के रूप में भी उपयोग किया जा सकता है और किसी iterable से आइटम फ़िल्टर किए जा सकते हैं। इस उदाहरण में, any() डिक्शनरी की सूची में कम-से-कम एक ऐसे एंट्री की तलाश करता है जो किसी ऐसे व्यक्ति का प्रतिनिधित्व करती है जिसकी आयु 18 से कम है:

records = [
    {"name": "Sarah", "age": 23},
    {"name": "Jake", "age": 30},
    {"name": "Paul", "age": 17},
]
if any(record["age"] < 18 for record in records):
    print("There's at least one minor.")
else:
    print("All records are adults.")
There's at least one minor.

जनरेटर एक्सप्रेशन प्रत्येक डिक्शनरी की "age" कुंजी के अनुरूप मान के आधार पर True या False देता है। चूँकि जनरेटर एक्सप्रेशन iterable होता है, इसे any() में उपयोग किया जा सकता है।

Python के any() में lazy evaluation को फिर से समझें

पिछला उदाहरण यह भी दिखा सकता है कि any() lazily इवैल्यूएट होता है। डिक्शनरी की सूची में निम्नलिखित बदलाव पर विचार करें:

records = [
    {"name": "Sarah", "age": 23},
    {"name": "Jake", "age": 30},
    {"name": "Paul", "age": 17},
    {"name": "Jill"},
]
if any(record["age"] < 18 for record in records):
    print("There's at least one minor.")
else:
    print("All records are adults.")
There's at least one minor.

records में चौथी डिक्शनरी में "age" कुंजी वाला आइटम नहीं है। फिर भी, जब इस आइटम के लिए "age" के मान को लाने की कोशिश की जाती है, तो कोड त्रुटि नहीं उठाता क्योंकि any() प्रक्रिया की शुरुआत में ही कोई truthy मान पा चुका था। फ़ंक्शन पहले truthy मान मिलने पर शॉर्ट-सर्किट कर देता है।

यदि वह डिक्शनरी जिसमें "age" कुंजी नहीं है, 18 से कम आयु वाले किसी आइटम से पहले आ जाए, तो कोड KeyError उठाता है:

records = [
    {"name": "Jill"},
    {"name": "Sarah", "age": 23},
    {"name": "Jake", "age": 30},
    {"name": "Paul", "age": 17},
]
if any(record["age"] < 18 for record in records):
    print("There's at least one minor.")
else:
    print("All records are adults.")
Traceback (most recent call last):
  ...
    if any(record["age"] < 18 for record in records):
              ~~~~~^^^^^^
KeyError: 'age'

यह उदाहरण Python के any() का उपयोग करते समय शॉर्ट-सर्किटिंग व्यवहार दिखाने के लिए बनाया गया है। यदि "age" कुंजी के बिना आइटमों के लिए कोड को exceptions नहीं उठानी चाहिए, तो एक विकल्प है। स्क्वायर ब्रैकेट नोटेशन से डिक्शनरी वैल्यू एक्सेस करने के बजाय, कोड डिफ़ॉल्ट मान के साथ डिक्शनरी मेथड .get() का उपयोग कर सकता है। यदि डिफ़ॉल्ट व्यवहार यह मानना है कि जिन एंट्री में आयु नहीं दी गई है वे नाबालिग नहीं हैं, तो if स्टेटमेंट को निम्न संस्करण से बदला जा सकता है:

if any(record.get("age", 18) < 18 for record in records):
    # ...

यदि कोड को यह मानना चाहिए कि जिन एंट्री में आयु नहीं है वे नाबालिग हैं, तो डिफ़ॉल्ट मान 18 से कम होना चाहिए।

Python: any() बनाम all()

Python के any() का एक सहचर फ़ंक्शन है, all()। यह बिल्ट-इन फ़ंक्शन भी एक iterable स्वीकार करता है और तब True लौटाता है जब सभी आइटम truthy हों।

इस ट्यूटोरियल के पहले के एक उदाहरण पर विचार करें जिसमें उपयोगकर्ता इनपुट का सत्यापन किया गया है। यदि एप्लिकेशन को कम-से-कम एक मान्य इनपुट चाहिए, तो Python का any() उपयोगी है। हालाँकि, यदि सभी उपयोगकर्ता इनपुट मान्य होने चाहिए, तो all() का उपयोग किया जा सकता है:

user_inputs = ["", "10.99", ""]
if any(user_inputs):
    print("At least one valid input present")
    # Rest of code...
else:
    print("There are no valid inputs")
if all(user_inputs):
    print("All inputs are valid")
    # Rest of code...
else:
    print("Not all inputs are valid")
At least one valid input present
Not all inputs are valid

हालाँकि, यदि उपयोगकर्ता इनपुट की सभी स्ट्रिंग्स नॉन-एम्प्टी हों, तो all() True लौटाता है:

user_inputs = ["5.99", "10.99", "19.99"]

# …
At least one valid input present
All inputs are valid

any() की तरह ही, बिल्ट-इन all() भी lazily इवैल्यूएट होता है। फ़ंक्शन पहले falsy मान मिलने पर शॉर्ट-सर्किट कर देता है।

निष्कर्ष

Python का any() यह पता लगाता है कि किसी iterable के आइटमों में से कोई truthy है या नहीं। यदि iterable में कम-से-कम एक आइटम True है या Boolean में कास्ट करने पर True देता है, तो फ़ंक्शन True लौटाता है। यद्यपि वही आउटपुट लूप का उपयोग करके भी प्राप्त किया जा सकता है, यह बिल्ट-इन फ़ंक्शन अधिक पठनीय और कुशल समाधान प्रदान करता है।


Stephen Gruppetta's photo
Author
Stephen Gruppetta
LinkedIn
Twitter

मैंने यूनिवर्सिटी ऑफ माल्टा में स्नातक स्तर पर भौतिकी और गणित का अध्ययन किया। उसके बाद, मैं लंदन चला गया और इम्पीरियल कॉलेज से भौतिकी में पीएचडी प्राप्त की। मैंने मानव रेटिना की इमेजिंग के लिए नवीन ऑप्टिकल तकनीकों पर काम किया। अब, मैं Python के बारे में लिखने, Python पर संवाद करने और Python सिखाने पर ध्यान केंद्रित करता हूँ।

विषय
Python

डेटा साइंस शून्य से सीखें!

कोर्स

Python में Data Science परिचय

4 घंटा
503.1K
Python से डेटा विज्ञान में उतरें और अपने डेटा का प्रभावी विश्लेषण व विज़ुअलाइज़ेशन करना सीखें। कोई कोडिंग अनुभव या कौशल की आवश्यकता नहीं।
विवरण देखेंRight Arrow
पाठ्यक्रम शुरू करें
और देखेंRight Arrow