আজকে আমরা পাইথনের একটি অত্যন্ত গুরুত্বপূর্ণ ডেটা – স্ট্রাকচার, টাপেল (Tuple in Python) নিয়ে আলোচনা করব। এই পোস্টে আমরা জানব টাপেল কি এবং পাইথনে এটি কে কিভাবে ব্যবহার করব?
Table of Contents
Definition of Tuple in Python
টাপেল হল লিস্ট এর মতই আর একটা গুরুত্বপূর্ণ পাইথনের টেটাস স্ট্রাকচার। তবে লিস্টের সাথে টাপেল কিছু গুরুত্বপূর্ণ পার্থক্য রয়েছে , সেটি হল টাপেল ইমিউটেবল টাইপের অর্থাৎ ভ্যালু আমরা পরিবর্তন করতে পারি না। যেমন লিস্ট তৈরি হয় [ ] এই ব্রাকেটের সাহায্যে ঠিক তেমনি টাপেল আমরা ( ) ব্রাকেটের সাহায্য তৈরি করতে পারি। যেমন –
mytuple = ("tech" ,"education", "tips and tricks")
PythonAlso Read :- What is Coding & Programming in Easy Bengali? প্রোগ্রামিং এবং কোডিং কি? 2023
Creating Tuple in Python
Creating Empty Tuple using braces
পাইথনে আমরা ( ) এভাবে ফাঁকা একটি টাপেল ইনিসিয়ালাইজ করতে পারি। যেমন –
mytuple =( )
print(type(mytuple))
Python<class 'tuple'>
Creating Empty Tuple using tuple constructor
পাইথনে আমরা টাপেল constructor এর সাহায্যে tuple( ) এভাবে ফাঁকা একটি টাপেল ইনিসিয়ালাইজ করতে পারি। যেমন –
mytuple =tuple ( )
print(type(mytuple))
Python<class 'tuple'>
Creating Tuple in Python
পাইথনে আমরা ( ) ব্রাকেটের মধ্যে কিছু ভ্যালু রেখে অথবা কমা চিহ্ন (,) ব্যবহার করে ভ্যালু গুলোকে আলাদা করেও টাপেল করতে পারি। যেমন –
mytuple = ( 1,2,3)
print(type(mytuple))
Python<class 'tuple'>
পাইথনে আমরা টাপেল মধ্যে অনেক টাইপের ডেটা রাখতে পারি। যেমন –
স্ট্রিং (string) , বুলিয়ান ( boolean ), int , লিস্ট (list) ,টাপল (tuple) ,ডিকশনারি (dictionary),সেট (set) ইত্যাদি।যেমন –
mytuple=('techinbengali.com',2024,True,2.136,[1,2,3],
{
"website":"techinbengali.com",
"category":"python"
}
)
print(mytuple)
print(type(mytuple))
PythonOutput
('techinbengali.com', 2024, True, 2.136, [1, 2, 3], {'website': 'techinbengali.com', 'category': 'python'})
<class 'tuple'>
Also Read :- Python কি এবং কেন শিখব? What is Python in Easy Bengali? 2023
Access values in Tuple in Python
আমরা আগেই আলোচনা করেছি যেমন লিস্টের ভ্যালু দেখার জন্য আমরা ইনডেক্স নাম্বার ব্যবহার করেছি ঠিক তেমন ভাবে আমরা টাপেলর ভ্যালু দেখার জন্য আমরা ইনডেক্স নাম্বার ব্যবহার করবো।
নিচের দেখানো পদ্ধতিতে আমরা একটি টাপেলর ইনডেক্স নাম্বার ব্যবহার করে ভ্যালু দেখতে পারি।
Example
mytuple=('techinbengali.com',2024,True,2.136,[1,2,3])
print(mytuple[0])
print(mytuple[4])
PythonOutput
techinbengali.com
[1, 2, 3]
Also Read :- Learn Python Free for Beginners in Bengali 2023
Inserting values in Tuple in python
আমরা আগেই আলোচনা করেছি যে টাপেল একটি ইমিউটেবল অবজেক্ট সেই কারণে আমরা টাপেলে ভ্যালু insert করতে পারবো না লিস্টের মতো।
যদি আমরা লিস্টের মতোন অ্যাপেন্ড মেথড ব্যবহার করে ভ্যালু insert করতে যাই তাহলে আমরা error পাবো।
নিচের example টি লক্ষ্য করুন।
Example
mytuple=('techinbengali.com',2024,True,2.136,[1,2,3])
mytuple.append("python")
PythonOutput
ERROR!
Traceback (most recent call last):
File "<main.py>", line 2, in <module>
AttributeError: 'tuple' object has no attribute 'append'
Also Read :- Function in Python | Easy Bengali 2024
Updating values in Tuple in Python
আমরা আগেই আলোচনা করেছি যে টাপেল একটি ইমিউটেবল অবজেক্ট সেই কারণে আমরা টাপেলে ভ্যালু পরিবর্তন (update ) করতে পারবো না লিস্টের মতো।
যদি আমরা লিস্টের মতোন ইনডেক্স নাম্বার ব্যবহার করে ভ্যালু আপডেট করতে যাই তাহলে আমরা error পাবো।
তবে আমরা দুই বা ততোধিক টাপেলকে একসাথে যুক্ত করে একটি টাপেলে পরিবর্তন করতে পারি।
Example – 1
mytuple=('techinbengali.com',2024,True,2.136,[1,2,3])
mytuple[1]=2023
PythonOutput – 1
ERROR!
Traceback (most recent call last):
File "<main.py>", line 2, in <module>
TypeError: 'tuple' object does not support item assignment
Example – 2
mytuple1=('techinbengali.com',2024)
mytuple2=(True,2.136,[1,2,3])
new_tuple=mytuple1+mytuple2
print(new_tuple)
print(type(new_tuple))
PythonOutput – 2
('techinbengali.com', 2024, True, 2.136, [1, 2, 3])
<class 'tuple'>
Also Read :- File Handling in Python | Easy Bengali 2023
Deleting Elements from Tuple in Python
আবারো যেহেতু টাপেল একটি ইমিউটেবল অবজেক্ট সেই কারণে আমরা টাপেলের ভ্যালু ডিলিট(delete ) করতে পারবো না লিস্টের মতো।
যদি আমরা লিস্টের মতোন del কী-ওয়ার্ড ব্যবহার করে ভ্যালু ডিলিট করতে যাই তাহলে আমরা error পাবো।
Example
mytuple=('techinbengali.com',2024)
del mytuple[0]
PythonOutput
ERROR!
Traceback (most recent call last):
File "<main.py>", line 2, in <module>
TypeError: 'tuple' object doesn't support item deletion
Also Read :- What is Module in Python | Learn in Easy Bengali 2024
Basic Tuple Operations in python (বেসিক টাপল অপারেশন)
len ( )
একটি টাপলের length বা দৈর্ঘ্য রিটার্ন করে।
Example
mytuple=(1,2,8,9,0,20,5)
print(len(mytuple))
PythonOutput
7
concatination
দুই বা ততোধিক টাপলকে কে join করতে ব্যবহৃত হয়।
Example
mytuple=(1,2,8,9,0,20,5)
mytuple2=(10,2,0,30)
print(mytuple+mytuple2)
PythonOutput
(1, 2, 8, 9, 0, 20, 5, 10, 2, 0, 30)
repetition
টাপলের মধ্যে এলিমেন্ট (element) রিপিট করাতে ব্যবহৃত হয়।
Example
mytuple=(1,2,8)
print(mytuple*3)
PythonOutput
(1, 2, 8, 1, 2, 8, 1, 2, 8)
Membership ( in )
এটি দিয়ে আমরা দেখতে পারি একটি ভ্যালু(element ) টাপলের এর মধ্যে আছে কি না ? যদি থাকে True রিটার্ন করবে যদি না থাকে False রিটার্ন করবে।
Example
mytuple=(1,2,3)
print(3 in mytuple)
print(4 in mytuple)
PythonOutput
True
False
Membership ( not in )
এটি দিয়ে আমরা দেখতে পারি একটি ভ্যালু(element ) টাপলের এর মধ্যে আছে কি না ? যদিও এটির ব্যবহার in এর ঠিক উল্টো (opposite)। যদি না থাকে True রিটার্ন করবে যদি থাকে False রিটার্ন করবে।
Example
mytuple=(1,2,3)
print(3 not in mytuple)
print(4 not in mytuple)
PythonOutput
False
True
max ( )
একটি টাপলের মধ্যে থেকে বড়ো (maximum) ভ্যালুটি রিটার্ন করবে।
Example
mytuple=(1,2,3,221,500,100,201,630)
print(max(mytuple))
PythonOutput
630
min ( )
একটি টাপলের মধ্যে থেকে ছোট (minimum) ভ্যালুটি রিটার্ন করবে।
Example
mytuple=(1,2,3,221,500,100,201,630)
print(min(mytuple))
PythonOutput
1
sum ( )
একটি টাপলের মধ্যে সকল সংখ্যার যোগফল রিটার্ন করবে।
Example
mytuple=(1,2,3,5,7,8)
print(sum(mytuple))
PythonOutput
26
tuple ( )
Example
এটির মাধ্যমে আমরা যে কোন sequence কে ( টাপল (tuple) , ডিকশনারি (dictionary) , সেট (set) , স্ট্রিং (string) ) কে টাপলে পরিবর্তন করতে পারবো।
mytuple='techinbengali.com'
print(tuple(mytuple))
PythonOutput
('t', 'e', 'c', 'h', 'i', 'n', 'b', 'e', 'n', 'g', 'a', 'l', 'i', '.', 'c', 'o', 'm')
Also Read :- What is List in Python | Learn in Easy Bengali 2024
Tuple Methods in python
টাপলে মাত্র দুটি built-in মেথড রয়েছে।
- Count ( )
- index ( )
Count ()
count() মেথডের প্যারামিটারে আমরা একটি এলিমেন্ট পাস করবো । এবং , মেথডটি আমাদের রিটার্ন করবে যে , আমাদের পাঠানো এলিমেন্ট টা টাপলের মধ্যে কতবার রয়েছে।
index () মেথডটি একটিই প্যারামিটার নেয়।
element – যেই এলিমেন্ট কে আমরা count করব।
Example
mytuple=(1,2,3,0,4,1,1,0,1,2,1,0)
print(mytuple.count(1))
PythonOutput
5
Index ()
Index () মেথডটি , আমাদের পাঠানো এলিমেন্ট টা টাপলের মধ্যে প্রথম কোন ইনডেক্স এ রয়েছে সেই index পজিশন রিটার্ন করবে।
index () মেথডটি তিনটি প্যারামিটার নেয়। যদিও তার মধ্যে দুটি অপশনাল প্যারামিটার।
element – যেই এলিমেন্ট কে আমরা সার্চ করব।
start ( optional ) – এটি হলো স্টার্টিং ইনডেক্স , যেখান থেকে আমরা সার্চ করা শুরু করব।
end ( optional ) – এটি হলো শেষ ইনডেক্স , যেখানে আমরা সার্চ করা শেষ করব।
Example
mytuple=(1,2,3,0,4,1,1,0,1,2,1,0)
print(mytuple.index(0))
PythonOutput
3
লিস্টের মতন , টাপেল কিন্তু remove ( ) , pop ( ) , sort ( ) , append ( ) , reverse ( ) ,মেথড গুলিকে সাপোর্ট করে না ।
Immutable Nature in python
প্রোগ্রামিং ল্যাঙ্গুয়েজে টাপেল হল একটি ইমিউটেবল ডেটা স্ট্রাকচার । অর্থাৎ একবার টাপেল তৈরি করার পরে আমরা সেই টাপেলের কোন এলিমেন্টকে add , update বা delete করতে পারি না। এই ইমিউটেবল নেচার ই নিশ্চিত করে যে একটি টাপেল পুরো প্রোগ্রামে জুড়ে একদম constant থাকে। বেশিরভাগ ক্ষেত্রে টাপেল আমরা ডেটা স্টোর করার জন্য ব্যবহৃত করি যেমন – ডেটাবেসে রেকর্ড স্টোর করতে।
Tuple Packing and Unpacking in python
Tuple Packing
এটি হলো এমন একটি টেকনিক , যেটির সাহায্যে আমরা দুই বা ততোধিক ভ্যালুকে একটা সিঙ্গেল ভেরিয়েবলে স্টোর করতে পারি।
Example
category="tech"
year=2024
student_name='subho'
mytuple=student_name,year,category
print(mytuple)
print(type(mytuple))
PythonOutput
('subho', 2024, 'tech')
<class 'tuple'>
Tuple Unpacking
Tuple Unpacking র মাধ্যমে আমরা একটি টাপেলের মধ্যে থাকা প্রত্যেকটি ভ্যালুকে আলাদা আলাদা নতুন ভেরিয়েবলে স্টোর করতে পারি ।
Example
mytuple=('techinbengali.com',2024,'python')
website_name,year,category=mytuple
print(website_name)
print(year)
print(category)
PythonOutput
techinbengali.com
2024
python
Also Read :- Basic List Operations and List methods in Easy Bengali 2024
The zip( ) Function
zip () হলো পাইথনের বিল্টইন function যেটা দুই বা ততোধিক sequence কে নেয় এবং তাদেরকে একসাথে করে একটি টাপেলের লিস্ট তৈরী করে ।
Example
list1=[1,2,3]
tuple1=('a','b','c')
print(list(zip(tuple1,list1)))
PythonOutput
[('a', 1), ('b', 2), ('c', 3)]
Convert list to tuple in Python
আমরা tuple ( ) মেথডটি ব্যাবহার করে লিস্টকে টাপেলে পরিবর্তন করতে পারি ।
Example
mylist=['techinbengali.com',2024,True,'python']
mytuple=tuple(mylist)
print(mytuple)
print(type(mytuple))
PythonOutput
('techinbengali.com', 2024, True, 'python')
<class 'tuple'>
Convert tuple to list
আমরা list( ) মেথডটি ব্যাবহার করে টাপেলকে লিস্টে পরিবর্তন করতে পারি ।
Example
mytuple=('techinbengali.com',2024,True,'python')
mylist=list(mytuple)
print(mylist)
print(type(mylist))
PythonOutput
['techinbengali.com', 2024, True, 'python']
<class 'list'>
Use-cases of Tuple in Python
- Geographical Coordinates
- Store Records in Database
- Financial Data
- Machine Learning
Performance Considerations between Tuple and List in python
Memory Efficiency
যেহেতু টাপেল একটি সিঙ্গেল মেমোরি ব্লকে স্টোর হয়, তাই নতুন কোনো অবজেক্টের জন্যে অতিরিক্ত কোনও জায়গার প্রয়োজন হয় না।অন্যদিকে, লিস্ট দুটি মেমোরি ব্লক allocate করে।
প্রথম ব্লকটি সেই লিস্টটি এবং তার এলিমেন্ট সম্পর্কে ফিক্স সাইজ তথ্য ধরে রাখে ।
এবং দ্বিতীয় ব্লকটি variable-sized এবং যার মধ্যে লিস্টের ডেটা গুলো স্টোর থাকে।
সেই কারণে আমরা বলতেই পারি tuples are more memory efficient.
Example
import sys
mytuple=('tech','education','quiz')
mylist=['tech','education','quiz']
print(f"tuple takes : {sys.getsizeof(mytuple)} bytes")
print(f"list takes : {sys.getsizeof(mylist)} bytes")
PythonOutput
tuple takes : 64 bytes
list takes : 88 bytes
Faster Iteration
আমরা এখন দেখবো লিস্ট আর টাপেল এর মধ্যে কার execution সবথেকে বেশি।
Example
import sys, platform # import system and platform module
import time # import time module
list=list(range(10000000))
tuple=tuple(range(10000000))
#----------------- time taken by tuple
start_for_tuple = time.time_ns()
for i in range(len(tuple)):
a = tuple[i]
end_for_tuple = time.time_ns()
print("Total time for Tuple: ", (end_for_tuple - start_for_tuple)*(1e-9))
#----------------- time taken by list
start_for_list = time.time_ns()
for i in range(len(list)):
a = list[i]
end_for_list = time.time_ns()
print("Total time for LIST: ", (end_for_list - start_for_list)*(1e-9))
PythonOutput
Total time for Tuple: 0.6849216180000001
Total time for LIST: 0.804385878
উপরের এক্সাম্পল , থেকে বুঝতে পারছি যে টাপেল তার সমস্ত এলিমেন্ট কে ঘুরে আসতে ০.০৬৮ সেকেন্ড সময় লেগেছে , যদিও লিস্টের একই সমস্ত এলিমেন্ট কে ঘুরে আসতে ০.০৮ সেকেন্ড সময় লেগেছে । সুতরাং আমরা বলতেই পারি যে টাপেলের execution লিস্টের থেকে বেশি।
Also Read :- What are Data Structures in Python in Easy Bengali 2024
Difference Between List and Tuple
List | Tuple |
লিস্ট হলো mutable কারণ লিস্টের সকল এলিমেন্টকে add, update , delete , read করা যায়। | টাপেল হলো immutable কারণ টাপেলের সকল এলিমেন্টকে add, update , delete করা যায় না ,শুধুমাত্র read করা যায়। |
লিস্টের সকল এলিমেন্ট গুলিকে [ ] এর মধ্যে লেখা হয় । | টাপেলের সকল এলিমেন্ট গুলিকে ( ) এর মধ্যে লেখা হয়। |
লিস্টের execution টাপেলের তুলনায় অনেক বেশি। | টাপেলের execution লিস্টের তুলনায় অনেকটাই কম। |
লিস্ট কম্পিউটারের মেমোরীতে অনেক বেশি জায়গা নেয়। | টাপেল লিস্টের তুলনায় কম্পিউটারের মেমোরীতে অনেকটাই কম জায়গা নেয়। |
লিস্টের অনেক built-in মেথড আছে। | টাপেলের মাত্র দুটো built-in মেথড আছে। |
Example : mylist = [ 1,2,3] | Example : mytuple = ( 1,2,3 ) |
এই পোস্টটি পড়ে আপনাদের মূলবান মতামত জানাতে আমাদের কমেন্ট করুন। আপনাদের কোনো প্রশ্ন থাকলে নির্দ্ধিধায় জিজ্ঞেসা করুন। আমরা চেষ্টা করবো যতো দ্রুত সম্ভব উত্তর দেবার।
ধন্যবাদ!!