Tuple: declaring, indexing, changing values, adding/removing data, tuple() method, count(), index()

Tuples Python के locked collections हैं, एक बार बनने पर, उनके elements पत्थर पर लिखे होते हैं, एक स्थायी data safety देते हुए जो raw lists guarantee नहीं कर सकतीं।

10 min read · 12 cards · 3 checks

Read in: English · हिन्दी · ગુજરાતી


Theory

Tamper-Proof Record System

आपके Semester 1 BCA104 C labs में, अगर आप configuration settings या transaction rules के एक sequence को lock करना चाहते ताकि कोई accidental code logic उन पर न लिख सके, आपको जटिल pointer tricks या constant macro definitions पर भरोसा करना पड़ता। Python में, lists बेहद flexible हैं क्योंकि वे runtime पर बढ़ और shift कर सकती हैं। पर क्या होता है जब आप पूर्ण safety चाहते हैं? आप एक ऐसा ordered collection कैसे बनाते हैं जो बनने के पल से कभी न बदलने की guarantee हो?

Theory

Stamped Certificate

एक list को एक अस्थायी scratch-pad की तरह सोचिए जहाँ आप रोज़ के grocery expenses एक pencil से लिखते हैं; आप entries मिटा सकते हैं, items swap कर सकते हैं, या जब चाहें lines जोड़ सकते हैं। एक tuple, दूसरी ओर, एक औपचारिक university graduation certificate की तरह है जो permanent ink में print और एक laminated plastic pouch के अंदर sealed है। आप data देख सकते हैं, roll number पढ़ सकते हैं, और graduation year verify कर सकते हैं, पर उस certificate पर एक अकेला letter बदलने की कोई भी कोशिश system को तोड़ देगी।

Theory

Tuple की नींव औपचारिक रूप से

एक tuple parentheses () के अंदर लपेटा elements का एक ordered, immutable collection है। क्योंकि tuples immutable हैं, Python interpreter guarantee देता है कि उनके internal cell addresses initialization के बाद कभी modify, delete, या append नहीं किए जा सकते। Tuples duplicate elements support करते हैं और mixed data types store कर सकते हैं। lists की ही तरह, वे values dynamically fetch करने के लिए बाएँ से zero-based positive indexing और दाएँ से negative indexing इस्तेमाल करते हैं।

At a glance

Table 1: Python tuples के लिए मुख्य declaration syntaxes और built-in inspection methods।

Operation PatternCode Syntax TemplateMemory पर Action/Impact
Single-Element Declarationsingleton = (50,)अनिवार्य trailing comma Python को बताता है यह एक tuple है, एक integer नहीं।
The tuple() Constructortuple(['a', 'b'])एक mutable sequence (जैसे एक list) को एक immutable tuple में बदलता है।
Frequency Analysisrecord.count(value)target value की घटनाएँ गिनता एक integer return करता है।
Position Lookuprecord.index(value)index 0 से खोजता है और value से मेल खाता पहला index return करता है।

Theory

Worked Example: System Configurations सुरक्षित करना

आइए देखें कि हमारा PocketMoney system fixed regulatory information कैसे सँभालता है। हम currency rules रखता एक immutable tuple परिभाषित करेंगे, एक item को index से देखेंगे, एक asset code की घटनाएँ verify करेंगे, और standard indirect conversion workaround दिखाएँगे जो tuple data बदलने के लिए इस्तेमाल होता है जब updates बिल्कुल ज़रूरी बनें।

Practical

PocketMoney Immutable Token Governance

# Step 1: Declaring a rigid configuration tuple
currency_config = ("INR", "Rs.", "Digital Wallet", "INR")

# Step 2: Accessing specific index values
primary_code = currency_config[0]

# Step 3: Counting occurrences of a specific item
inr_count = currency_config.count("INR")

# Step 4: The Workaround, modifying data indirectly via type conversion
temp_list = list(currency_config)
temp_list[2] = "Smart Wallet"
currency_config = tuple(temp_list)

print("Primary Token:", primary_code)
print("Count of 'INR':", inr_count)
print("Updated Configuration:", currency_config)

This example runs in Gri-Learn on the web, where you can edit it and see the output.

Think first

Immutability Workaround को ट्रेस करें

ऊपर के script का विश्लेषण कीजिए। हमें केवल index 2 बदलने के लिए line 10 पर अपने tuple को एक list में convert क्यों करना पड़ा? currency_config की अंतिम state के रूप में क्या print होगा?

Show the answer

script output करेगी:

Primary Token: INR

Count of 'INR': 2

Updated Configuration: ('INR', 'Rs.', 'Smart Wallet', 'INR')

क्यों? currency_config[2] = 'Smart Wallet' जैसे सीधे item reassignments Python द्वारा block किए जाते हैं और एक crash trigger करते हैं। एक tuple का data सुरक्षित रूप से बदलने के लिए, आपको इसे list() के ज़रिए एक mutable list में convert करना, target slot cell index update करना, और पूरे container को tuple() के अंदर फिर से लपेटना होगा।

Quiz

एक university laboratory examination में इस statement को चलाने का बिल्कुल नतीजा क्या है: score = (100)?

  1. यह 1 की length वाला एक valid tuple बनाता है।
  2. यह value 100 रखता एक standard integer variable initialize करता है।
  3. यह एक तुरंत SyntaxError फेंकता है क्योंकि tuples में single elements प्रतिबंधित हैं।
  4. यह score नामक एक empty list wrapper बनाता है।
Show the answer

यह value 100 रखता एक standard integer variable initialize करता है।

Parentheses mathematical grouping के लिए भी इस्तेमाल होते हैं। अगर आप parentheses के अंदर एक single item बिना trailing comma के लिखते हैं, Python statement को एक साधारण data primitive (integer, float, या string) के रूप में resolve करता है। एक सच्चा single-element tuple बनाने के लिए, आपको एक comma जोड़ना होगा, जैसे: score = (100,)।

Quiz

इस script chunk पर विचार कीजिए: records = (10, 20, 30) records[1] = 99 print(records)

  1. (10, 99, 30)
  2. (10, 20, 30)
  3. TypeError: 'tuple' object does not support item assignment
  4. SyntaxError: immutable sequence breach
Show the answer

TypeError: 'tuple' object does not support item assignment

Tuples सख़्ती से immutable collections हैं। कोई भी code की line जो एक individual element slot को सीधे memory में force-write या overwrite करने की कोशिश करती है, Python runtime execution engine को एक TypeError के साथ तुरंत रोकने का कारण बनती है।

Watch out

Classic जाल: Modification का भ्रम

university theory papers में सबसे बार-बार marks-गँवाने वाली ग़लती यह मानना है कि एक tuple पर methods call करना या variables जोड़ना बिल्कुल वैसे काम करता है जैसे lists के लिए। Tuples में append(), insert(), extend(), या pop() जैसी methods पूरी तरह नहीं हैं! उनके पास केवल दो built-in methods हैं: count() और index()। अगर आप my_tuple.append(40) execute करने की कोशिश करते हैं, आपकी script किसी भी बाद वाली logic line process करने से पहले एक AttributeError के साथ crash होगी।

Theory

Collections को Semester 3 से जोड़ना

Tuples relational applications में मूल data return structure के रूप में काम करते हैं। Semester 3 (BCA303) में, जब आपका Python back-end cursor.fetchone() जैसी commands इस्तेमाल करके एक external SQLite data table से user login data fetch करने के लिए एक query trigger करता है, library उस ख़ास database record को एक immutable tuple के रूप में return करती है। यह guarantee देता है कि आपके core data fields पूरी तरह locked और corruption से safe रहें जैसे वे आपके software layers में move करते हैं।

Summary

Key takeaways

  • Tuples ordered, immutable collection objects हैं जो enclosing parentheses इस्तेमाल करके declare किए जाते हैं।
  • Immutability data sets को program execution के दौरान accidental manipulation से बचाती है।
  • Single-element tuples में उन्हें standard expressions से अलग करने के लिए एक trailing comma होना चाहिए।
  • Tuples data fetch करने के लिए standard zero-based indexing और slicing operations support करते हैं।
  • tuple items बदलने के लिए list() के ज़रिए casting, list बदलना, और tuple() के ज़रिए वापस casting चाहिए।
  • Memory Hook: Lists जगह पर बदलती हैं; tuples शुरू से अंत तक locked रहती हैं!

Study this properly

This page is the lesson to read. In Gri-Learn the same topic is a graded deck: the self-checks are scored and your weak topics are tracked. Free to start.

Start this topic

Already have an account? Sign in

More from Python Collections

Gri-Learn · syllabus-mapped B.C.A. lessons in English, Hindi and Gujarati

Tuple: declaring, indexing, changing values, adding/removing data, tuple() method, count(), index() · Programming Skills · Gri-Learn