Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में एकाधिक मान वापस करना


पायथन फ़ंक्शन एकाधिक मान वापस कर सकते हैं। इन मानों को सीधे वेरिएबल्स में संग्रहीत किया जा सकता है। एक फ़ंक्शन एक वेरिएबल वापस करने तक सीमित नहीं है, यह शून्य, एक, दो या अधिक मान वापस कर सकता है।

यह पायथन की डिफ़ॉल्ट संपत्ति है कि वह एकाधिक मान/वेरिएबल वापस कर सकता है जो C++ या Java जैसी कई अन्य प्रोग्रामिंग भाषाओं में उपलब्ध नहीं है।

किसी फ़ंक्शन से एकाधिक मान वापस करने के लिए, हम अपनी आवश्यकता के अनुसार टपल, सूची या डिक्शनरी ऑब्जेक्ट वापस कर सकते हैं।

विधि 1: टपल का उपयोग करना

def func(x):\n    y0 = x + 1\n    y1 = x * 3\n    y2 = y0 ** 3\n    return (y0, y1, y2)

हालांकि, जैसे-जैसे वापस किए जाने वाले मानों की संख्या बढ़ती है, उपरोक्त प्रोग्राम समस्याग्रस्त हो जाता है। यदि हम छह या सात मान वापस करना चाहें? निश्चित रूप से, हम उन्हें टपल करते रह सकते हैं, लेकिन यह भूलना आसान है कि कौन सा मान कहां है। साथ ही जहां भी हम उन्हें प्राप्त करना चाहते हैं, उन्हें अनपैक करना थोड़ा गन्दा हो जाता है।

विधि 2: डिक्शनरी का उपयोग करना

एक बेहतर समाधान डिक्शनरी का उपयोग करना है।

def func(x):\n    y0 = x + 1\n    y1 = x * 3\n    y2 = y0 ** 3\n    return {'y0': y0, 'y1': y1, 'y2': y2}

अब, हमारे पास एक तंत्र है जिससे हम वापस किए गए ऑब्जेक्ट के एक विशेष सदस्य को प्रोजेक्ट कर सकते हैं।

उदाहरण के लिए -

result['y1']

विधि 3: क्लास का उपयोग करना

एक अन्य विकल्प क्लास का उपयोग करना है, जहां हम एक विशेष संरचना वापस कर सकते हैं।

class ReturnValue(object):\n    def __init__(self, y0, y1, y2):\n        self.y0 = y0\n        self.y1 = y1\n        self.y2 = y2\n\ndef g(x):\n    y0 = x + 1\n    y1 = x * 3\n    y2 = y0 ** 3\n    return ReturnValue(y0, y1, y2)

विधि 4: सूची का उपयोग करना

एक अन्य विधि सूची का उपयोग करना है।

def func(x):\n    result = [x + 1]\n    result.append(x * 3)\n    result.append(y0 ** 3)\n    return result

विधि 5: जेनरेटर का उपयोग करना

हम yield का उपयोग करके एक-एक करके एकाधिक मान वापस करने के लिए इस विकल्प को चुन सकते हैं, यदि हमें बड़ी संख्या में मान वापस करने हैं तो अनुक्रमों का उपयोग करने से बहुत सारे सिस्टम संसाधनों की खपत हो सकती है।

def func(x):\n    y0 = x + 1\n    yield y0\n    yield x * 3\n    yield y0 ** 3

कौन सी विधि एक फ़ंक्शन से एकाधिक मान वापस करने के लिए सर्वोत्तम है?

यह सब आपकी पसंद या आवश्यकता पर निर्भर करता है कि आप कौन सी विधि पसंद करते हैं। आप डिक्शनरी मार्ग चुन सकते हैं क्योंकि इसमें कम सेट-अप कार्य शामिल है। या आप क्लास मार्ग चुन सकते हैं क्योंकि यह आपको भ्रम से बचने में मदद कर सकता है कि एक डिक्शनरी क्या दर्शाती है। या आप मानों को एक-एक करके प्राप्त करने के लिए जेनरेटर चुन सकते हैं।

  1. प्रत्येक X के लिए एकाधिक Y वैल्यूज़ वाला स्कैटर प्लॉट (Python Matplotlib) प्रत्येक X के लिए एकाधिक Y वैल्यूज़ वाला स्कैटर प्लॉट (Python Matplotlib)

    एक ही X वैल्यू के लिए कई Y वैल्यूज़ होने पर, zip() से उन्हें पेयर करके स्कैटर प्लॉट बनाएं। चरण फिगर साइज़ और ऑटोलेआउट सेट करें। NumPy से रैंडम xs और ys जनरेट करें। zip(xs, ys) से पेयर बनाएं और लूप में plt.scatter(x, y) करें। plt.show() से दिखाएं। उदाहरण कोड import numpy as np from matplotlib impor

  1. - पायथन में एक ही वेरिएबल को मल्टीपल वैल्यू कैसे असाइन करें?

    पायथन में, यदि आप ऐसा कुछ करने का प्रयास करते हैं: a = b = c = [0,3,5] a[0] = 10 आपको इसमें समान वैल्यू मिलेंगी: a, b, और c: [10, 3, 5] ऐसा इसलिए है क्योंकि यहां तीनों वेरिएबल एक ही वैल्यू को इंगित करते हैं। यदि आप इस वैल्यू को मॉडिफाई करते हैं, तो आपको सभी नामों में परिवर्तन परिलक्षित होगा, यानी a

  1. - Python में एकाधिक मान कैसे लौटाएं?

    टपल, लिस्ट, डिक्शनरी या यूजर डिफाइंड क्लास के ऑब्जेक्ट के रूप में फंक्शन से एकाधिक मान लौटाना संभव है। टपल के रूप में लौटाएं >>> def function(): ... a = 10; b = 10 ... return a, b >>> x = function() >>> type(x) >>> x (10, 10) >>> x, y = function