Python Data Types
Tuple in Python
Python Language এ Tuple কি?
Python Language এ লিস্টের মতই আরেকটি ডাটা স্ট্রাকচার হচ্ছে Python Tuple. পার্থক্যটি হচ্ছে আপনি চাইলে List এর যেকোনো value পরিবর্তন করতে পারবেন কিন্তু tuple এর value পরিবর্তন করতে পারবেন না। অর্থাৎ , Tuple কে লিস্টের মত করে ইচ্ছামত পরিবর্তন, পরিবর্ধন করতে পারবেন না। Tuple এ প্রত্যেকটি Element/Item এর জন্য একটি number assign করা হয় যাকে index বা position বলা যায়। Tuple অনেকটা C, C++, Java এবং Python Tuple এর মতো। Python Tuple এ প্রথম index zero (0), তারপর 1 এবং এরপর ক্রমিক আকারে বাড়তে থাকে।আবার, লিস্ট যেমন তৈরি করতে হয় দুটো [] ব্র্যাকেট দিয়ে কিন্তু টাপল তৈরি করতে হয় () দিয়ে (যদিও ব্র্যাকেট ছাড়াও শুধু কমা চিহ্ন দিয়ে ভ্যালু গুলোকে আলাদা করেও টাপল তৈরি করা যায়)। মূলত , Data কে সুরক্ষিত রাখতেই টাপল(Tuple) ব্যবহৃত হয় এবং এটি Dynamically পরিবর্তন না হওয়ায় List এর তুলনায় দ্রুত কাজ করে।
Web Development, Data Science and Big Data Course with Python, MongoDB, MySQL and Django
পাইথনে কিভাবে Tuple তৈরী করবেন ?
পাইথনে Tuple তৈরী করা খুবই সহজ। দুটো প্যারেন্থেসিস ( ) এবং এর মধ্যে কমা দিয়ে আলাদা আলাদা Element/Item যুক্ত করে দিলেই (যদিও ব্র্যাকেট ছাড়াও শুধু কমা চিহ্ন দিয়ে ভ্যালু গুলোকে আলাদা করেও টাপল তৈরি করা যায়) Tuple তৈরী হয়ে যাবে। চলুন একসাথে কয়েকটি Tuple তৈরী করে ফেলি :
# empty tuple # Output: () my_tuple = () print(my_tuple) # tuple having integers # Output: (1, 2, 3) my_tuple = (1, 2, 3) print(my_tuple) # tuple with mixed datatypes # Output: (1, "Hello", 3.4) my_tuple = (1, "Hello", 3.4) print(my_tuple) # nested tuple # Output: ("mouse", [8, 4, 6], (1, 2, 3)) my_tuple = ("mouse", [8, 4, 6], (1, 2, 3)) print(my_tuple) # tuple can be created without parentheses # also called tuple packing # Output: 3, 4.6, "dog" my_tuple = 3, 4.6, "dog" print(my_tuple) # tuple unpacking is also possible # Output: # 3 # 4.6 # dog a, b, c = my_tuple print(a) print(b) print(c)
তবে tuple এ যদি শুধু একটা element থাকে , তাহলে আপনাকে অবশ্যয় tuple এর মধ্যে ঐ একটা element বা Item শেষে একটা comma (,) দিতে হবে। নিচের উদাহরণ দেখুন :
# only parentheses is not enough # Output: <class 'str'> my_tuple = ("hello") print(type(my_tuple)) # need a comma at the end # Output: <class 'tuple'> my_tuple = ("hello",) print(type(my_tuple)) # parentheses is optional # Output: <class 'tuple'> my_tuple = "hello", print(type(my_tuple))
কিভাবে Tuple এর Element গুলোতে access করবেন?
Python Tuple এর Element বা Item গুলোতে access করার জন্য আপনি List এর মতোই index বা position ব্যবহার করতে পারেন। নিচের উদাহরণে লক্ষ্য করুন :
my_tuple = ('Parvez','Erfan','Ramjan','Maksud','Imran','Taher') # Output: 'Parvez' print(my_tuple[0]) # Output: 'Taher' print(my_tuple[5]) #Nested Tuple n_tuple = ("mouse", [8, 4, 6], (1, 2, 3)) # nested index # Output: 's' print(n_tuple[0][3]) # nested index # Output: 4 print(n_tuple[1][1])
উল্লেখ্য : Python Tuple এর index সব সময় integer হতে হবে।
https://blog.w3programmers.com/trainings/python-beginning-to-advance/
Negative indexing (বিপরীত দিক থেকে indexing)
Python Tuple এ আপনি চাইলে negative indexing (বিপরীত দিক থেকে indexing) ও করতে পারেন। অর্থাৎ , index (-1) এর অর্থ দাঁড়ায় From Last One (Tuple এর পিছনের দিক থেকে প্রথম value), এবং index (-2) এর অর্থ দাঁড়ায় From Last Two(Tuple এর পিছনের দিক থেকে দ্বিতীয় value). ঠিক এইভাবে -3 এবং -4 ক্রম অনুসারে। নিচের উদাহরণ লক্ষ্য করুন :
my_tuple = ('Pervez','Emran','Rimon','Momtaz','Irfan','Taher') # Output: 'Taher' print(my_tuple[-1]) # Output: 'Parvez' print(my_tuple[-6])
Python Tuple কে Slice করা ?
আপনি চাইলে পাইথনের Slicing Operator (:) দিয়ে Tuple এর নির্দিষ্ট অংশ Slicing করে নিতে পারেন। নিচের উদাহরণ দেখুন।
my_tuple = ('Parvez','Rakib','Omran','Galib','Riad','Anwar','Mahbub','Imran','Zaber') # elements 2nd to 4th # Output: ('Rakib', 'Omran', 'Galib') print(my_tuple[1:4]) # elements beginning to 2nd # Output: ('Parvez', 'Rakib') print(my_tuple[:-7]) # elements 8th to end # Output: ('Imran', 'Zaber') print(my_tuple[7:]) # elements beginning to end # Output: ('Parvez','Rakib','Omran','Galib','Riad','Anwar','Mahbub','Imran','Zaber') print(my_tuple[:])
Tuple Unpacking
Tuple Unpacking এর মাধ্যমে একটি টাপলের (বা যেকোনো iterable) মধ্যে থাকা প্রত্যেকটি value কে আলাদা আলাদা নতুন Variable এ অ্যাসাইন করতে পারেন এক লাইন কোড লিখেই। নিচের উদাহরণ দেখুন:
>>> names=("Plabon","Shahriar","Bijon") >>> a,b,c=names >>> print (a) Plabon >>> print (b) Shahriar >>> print (c) Bijon >>>
যদি এমন হয় যে একটি Tuple এর মধ্যে অবস্থিত অসংখ্য ভ্যালু এর মধ্যে অল্প কিছু আলাদা আলাদা ভ্যারিয়েবলে জমা রাখতে চান, এবং বাকি গুলো একটা নির্দিষ্ট variable এ রাখতে চান। তখন নিচের মত করে যেকোনো ভ্যারিয়েবলের সামনে * যুক্ত করে অবশিষ্ট যেকোনো সংখ্যক ভ্যালুকে এর মধ্যে জমা রাখতে পারবেন।
>>> a, b, *c, d = (1, 2, 3, 4, 5, 6, 7, 8, 9) >>> print(a) 1 >>> print (b) 2 >>> print (c) [3, 4, 5, 6, 7, 8] >>> print (d) 9 >>>
ব্যাখ্যা: এখানে 1 জমা হচ্ছে a এর মধ্যে, 2 জমা হচ্ছে b এর মধ্যে কিন্তু এরপর থেকে বাকিগুলো জমা হচ্ছে c এর মধ্যে। আর ডান পাশের ইটারেবলের শেষ ভ্যালু জমা হচ্ছে বাম পাশের শেষ ভ্যারিয়েবল d এর মধ্যে।
Tuple এ পুরাতন আইটেম Update বা নতুন আইটেম add করা :
আমরা আগেই জেনেছি, List এর মত করে Tuple কে পরিবর্তন বা পরিবর্ধন করা যায়না। তবে tuple এর মধ্যে অবস্থিত যেকোনো list আপনি চাইলে সহজেই পরিবর্তন করতে পারবেন। নিচের উদাহরণ দেখুন :
my_tuple = (4, 2, 3, [6, 5]) # we cannot change an element # If you uncomment line 8 # you will get an error: # TypeError: 'tuple' object does not support item assignment #my_tuple[1] = 9 # but item of mutable element can be changed # Output: (4, 2, 3, [9, 5]) my_tuple[3][0] = 9 print(my_tuple) # tuples can be reassigned # Output: ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z') my_tuple = ('p','r','o','g','r','a','m','i','z') print(my_tuple)
লক্ষ্য করুন, আপনি লাইন ৮ নম্বরকে যদি uncomment করেন , তাহলে আপনাকে error দেখাবে, কারণ এইটা tuple এর অন্তর্গত , কিন্তু লাইন নম্বর ১২ তে কোনো error দেখাবেনা। কারণ এটি একটি list
দুইটি tuple কে combine করা
আপনি দুইটি tuple কে combine করার জন্য plus (+) operator ব্যবহার করতে পারেন, যেটাকে আবার concatenation ও বলা হয়ে থাকে।
# Concatenation # Output: (1, 2, 3, 4, 5, 6) print((1, 2, 3) + (4, 5, 6))
tuple Item কে repeat করা
একইভাবে Tuple এর মধ্যে Item গুলোকে repeat করার জন্য Multiplication (*) operator ব্যবহার করতে পারেন।
# Repeat # Output: ('Repeat', 'Repeat', 'Repeat') print(("Repeat",) * 3)
Tuple থেকে কোনো কিছু remove বা Delete করা
পাইথনে Tuple এর মধ্যে কোনো নির্দিষ্ট Item কে রিমুভ করতে না পারলেও আপনি পুরো tuple কেই ডিলিট বা রিমোভ করার জন্য del কীওয়ার্ডটি ব্যবহার করতে পারেন। নিচের উদাহরণ দেখুন :
my_tuple = ('Parvez','Robin','Omran','Galib','Raihan','Amanullah','Mahfuz','Imran','Zafreen') # can't delete items # if you uncomment line 8, # you will get an error: # TypeError: 'tuple' object doesn't support item deletion #del my_tuple[3] # can delete entire tuple # NameError: name 'my_tuple' is not defined del my_tuple my_tuple
পাইথনে Tuple এর Item সংখ্যা Count
পাইথনে Tuple এর Item গুলোর মধ্যে কোনো নির্দিষ্ট Item সংখ্যা কত, তা গণনা করার জন্য আপনি count Method ব্যবহার করতে পারেন। নিচের উদাহরণ দেখুন :
my_tuple = ('a','p','p','l','e',) # Count # Output: 2 print(my_tuple.count('p'))
পাইথনে Tuple এর Item গুলোর মধ্যে কোনো নির্দিষ্ট Item এর index কত, তা জানার জন্য আপনি index Method ব্যবহার করতে পারেন। নিচের উদাহরণ দেখুন :
my_tuple = ('a','p','p','l','e',) # Index # Output: 3 print(my_tuple.index('l'))
Web Development, Data Science and Big Data Course with Python, MongoDB, MySQL and Django
Tuple এ কোনো Item আছে কিনা তা যাচাই করা :
my_tuple = ('a','p','p','l','e',) # In operation # Output: True print('a' in my_tuple) # Output: False print('b' in my_tuple) # Not in operation # Output: True print('g' not in my_tuple)
Iterate to Tuple’s Items
পাইথনের for loop দিয়ে আপনি item গুলোকে iterate করতে পারি।
# Output: # Hello Jahir # Hello Karim for name in ('Jahir','Karim'): print("Hello",name)
Tuple এর কিছু Built-in Function List
Tuple নিয়ে বিভিন্ন কাজ করার জন্য সাধারণ কিছু function নিচে সেগুলোর বিস্তারিত দেওয়া হলো।
Function | Description |
---|---|
all() | Tuple এর সব element যখন true, তখন এটি true return করবে। |
any() | Tuple এর যেকোনো element যখন true, তখন এটি true return করবে। |
len() | tuple এর Length return করবে |
tuple() | list, string, set, dictionary এই ধরণের iterable data type কে Tuple এ convert করবে। |
max() | Tuple এর max (বড়) Item টি return করবে। |
min() | Tuple এর সবচেয়ে min (ছোট) Item টি return করবে। |
sorted() | নতুন একটি sorted Tuple return করবে। |
sum() | Tuple এর সব Element এর যোগফল দেখাবে। |
চলুন নিচে সবগুলোর একটা করে উদাহরণ দেখা যাক :
>>> my_tuple=[2,1,3,6,5,8,7,9,10,21] >>> len(my_tuple) 10 >>> max(my_tuple) 21 >>> min(my_tuple) 1 >>> sum(my_tuple) 72 >>> sorted(my_tuple) [1, 2, 3, 5, 6, 7, 8, 9, 10, 21] >>> any(my_tuple) True >>> all(my_tuple) True >>>