namedtuple और OrderedDict
अन्य उपयोगी संग्रह
namedtuple और OrderedDict, CoddyKit पर Python Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Python Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Python Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
दो और उपयोगी संग्रह
collections मॉड्यूल में पढ़ने में आसान रिकॉर्ड-जैसे टपल के लिए namedtuple और अतिरिक्त क्रम-विन्यास विधियों वाले शब्दकोशों के लिए OrderedDict शामिल हैं।
इन्हें from collections import namedtuple, OrderedDict से इंपोर्ट करें।
from collections import namedtuple, OrderedDict
print(namedtuple)
print(OrderedDict)नामित टपल परिभाषित करना
namedtuple(name, fields) एक नया टपल उपवर्ग बनाता है। इसमें आप प्रकार का नाम और फ़ील्ड नामों की सूची देते हैं। परिणाम एक ऐसा वर्ग होता है, जिसका इंस्टैंस बनाया जा सकता है।
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(3, 4)
print(p)नाम से पहुँच
सबसे बड़ा लाभ यह है कि कठिन इंडेक्स संख्याओं के बजाय फ़ील्ड को नाम से पढ़ा जा सकता है, जिससे कोड बहुत अधिक पठनीय बनता है।
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(3, 4)
print(p.x)
print(p.y)फिर भी एक टपल
नामित टपल वास्तविक टपल होता है, इसलिए अनुक्रमण, अनपैकिंग और इटरेशन सभी अब भी काम करते हैं।
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(3, 4)
print(p[0])
x, y = p
print(x + y)अपरिवर्तनीय, लेकिन प्रतिस्थापनीय
सभी टपल की तरह, नामित टपल भी अपरिवर्तनीय होते हैं। बदली हुई प्रति पाने के लिए ._replace() का उपयोग करें, जो एक नया इंस्टैंस लौटाता है।
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(3, 4)
q = p._replace(y=10)
print(p)
print(q)शब्दकोश में बदलना
._asdict() नामित टपल को एक सामान्य शब्दकोश में बदलता है, जिसमें फ़ील्ड नामों को मानों से जोड़ा जाता है।
from collections import namedtuple
Car = namedtuple('Car', ['make', 'year'])
c = Car('Toyota', 2026)
print(c._asdict())डिफ़ॉल्ट मान
नामित टपल परिभाषित करते समय defaults दें। डिफ़ॉल्ट मान सबसे दाईं ओर के फ़ील्ड पर लागू होते हैं, इसलिए इंस्टैंस बनाते समय उन्हें छोड़ा जा सकता है।
from collections import namedtuple
User = namedtuple('User', ['name', 'role'], defaults=['guest'])
print(User('Alice'))
print(User('Bob', 'admin'))फ़ील्ड की जाँच
._fields एट्रिब्यूट फ़ील्ड नामों की सूची देता है, जो आत्मनिरीक्षण या सामान्य कोड बनाने के लिए उपयोगी है।
from collections import namedtuple
Color = namedtuple('Color', ['r', 'g', 'b'])
print(Color._fields)OrderedDict की मूल बातें
OrderedDict जोड़ने का क्रम याद रखता है। पाइथन 3.7 से सामान्य शब्दकोश भी क्रम बनाए रखते हैं, लेकिन OrderedDict अतिरिक्त क्रम-विन्यास विधियाँ जोड़ता है, जो अन्यथा उपलब्ध नहीं होतीं।
from collections import OrderedDict
od = OrderedDict()
od['first'] = 1
od['second'] = 2
print(od)move_to_end
.move_to_end(key) किसी कुंजी को अंत में ले जाता है, या last=False होने पर शुरुआत में। यह OrderedDict की खासियत है और LRU-शैली के तर्क के लिए उपयोगी है।
from collections import OrderedDict
od = OrderedDict(a=1, b=2, c=3)
od.move_to_end('a')
print(list(od.keys()))
od.move_to_end('c', last=False)
print(list(od.keys()))क्रम-निर्भर समानता
दो OrderedDict ऑब्जेक्ट तभी समान होते हैं, जब उनके तत्व एक ही क्रम में हों। साधारण शब्दकोशों की तुलना में क्रम को अनदेखा किया जाता है।
from collections import OrderedDict
a = OrderedDict([('x', 1), ('y', 2)])
b = OrderedDict([('y', 2), ('x', 1)])
print(a == b)
print(dict(a) == dict(b))त्वरित जाँच
नामित टपल अपरिवर्तनीय होने के कारण उसकी बदली हुई प्रति कैसे बनाएँगे?
पुनरावृत्ति: नामित टपल और OrderedDict
सारांश:
namedtuple(name, fields)नाम से पहुँच वाले पठनीय, अपरिवर्तनीय रिकॉर्ड बनाता है।- बदली हुई प्रतियों के लिए
._replace()और शब्दकोश में बदलने के लिए._asdict()का उपयोग करें। OrderedDictजोड़ने का क्रम बनाए रखता है और.move_to_end()जोड़ता है।- साधारण शब्दकोश के विपरीत, OrderedDict की समानता क्रम पर निर्भर करती है।
from collections import namedtuple
Pt = namedtuple('Pt', ['x', 'y'])
print(Pt(1, 2)._asdict())एआई शिक्षक के साथ Python सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 76
- पाठ
- 320
अक्सर पूछे जाने वाले प्रश्न
क्या “namedtuple और OrderedDict” पाठ निःशुल्क है?
हाँ—“namedtuple और OrderedDict” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Python Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Python Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“namedtuple और OrderedDict” में मैं क्या सीखूँगा?
अन्य उपयोगी संग्रह आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Python Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Python Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Python Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“namedtuple और OrderedDict” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Python Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Python Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- Counter
- defaultdict
- deque
- namedtuple और OrderedDict