> For the complete documentation index, see [llms.txt](https://bangla-python-book.gitbook.io/python-programming-language/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bangla-python-book.gitbook.io/python-programming-language/data-types/collection-data-types/sequence-types/tuple-type.md).

# ট্যুপল

টাপল হচ্ছে পাইথনের একটি বিল্ট ইন ডেটা স্ট্রাকচার। ট্যুপল আর লিস্টের মধ্যে বেসিক পার্থক্য হচ্ছে ট্যুপল ইমিউটেবল। মানে ট্যুপলে কোন পরিবর্তন করা যায় না। ট্যুপল লিখতে আমরা ফার্স্ট ব্রাকেট না প্যারেনথিসিস ব্যবহার করি। tup = () #empty tuple

লিস্টের মত ট্যুপলে ও আমরা এলিমেন্ট গুলো কমা সেপারেটেড করে লিখি। tup = (1,3,4,7)

বলে রাখা ভাল ট্যুপলে চাইলে আমরা প্যারেনথিসিস ব্যবহার না ও করতে পারি। সেক্ষত্রে ও পাইথন একে ট্যুপল অবজেক্ট হিসেবেই নিবে।

tup = "y"," a", "r"

**ট্যুপল অপারেশনস্**

পাইথন ট্যুপলে আমরা এলিমেন্ট যোগ করা, বাদ দে্যা, দুটো টুপলের তূলনা করা সহ নানা রকমের অপারেশন চালাতে পারি।

**আপডেট**

টুপল যেহেতু অপরিবর্তনীয় (ইমিউটেবল) তাই টুপলে সিঙ্গলে ভ্যালু আপডেট/ইনসার্ট করতে পারব না। তবে একাধিক টুপল যোগ/ কনক্যাট করা যায়।

```python
tup1 = ("y","a","r") 
tup2 = (1,2,3) 
tup3 = tup1 + tup2 
print(tup3)
```

আউটপুটঃ ("y","a","r",1,2,3)

**ডিলিট**

পাইথনে টুপল ডিলিট করার জন্য del স্টেটমেন্ট ব্যবহার করা হয় । তবে এতে পুরো টুপলই ডিলিট হয়ে যায়।

```python
>>>del tup3 
>>>print(tup3)
```

এই কোড রান করাতে গেলে এমন এরর আসবে... NameError: 'tup3' is not defined

কারণ পাইথন পুরো ট্যুপল টা- ই ডিলিট করে দিয়েছে।

**লেনথ্**

ট্যুপলের লেনথ্ বের করার জন্য লিস্টের মত len() এক্সপ্রেশন ব্যবহার করা হয়।

```python
>>>tup = (1,2,3)
>>>len(tup)
3
```

**রিপিটিশন**

একটি ট্যুপল একাধিক বার আউটপুট হিসেবে চাইলে শুধু মাত্র সাধারণ গুণ করে দিলেই হয়। তবে ট্যুপল গুলো আলাদা আলাদা ট্যুপল আকারে প্রিন্ট না হয়ে একটি মাত্র ট্যুপল আকারে প্রিন্ট হবে।

```python
>>>tup*3
(1,2,3,1,2,3,1,2,3)
```

**ম্যাক্সিমাম-মিনিমাম এলিমেন্ট**

একটি ট্যুপলের সবচেয়ে বড়/ছোট উপাদান বের করতে লিস্টের মত ট্যুপলে ও max() এবং min() ফাংশন ব্যবহার করা হয়ে থাকে।

```python
>>> tup=( 2,6,7,9)
>>>max(tup)
9 
>>>min(tup)
2
```

**মেম্বারশিপ**

কোন একটা উপাদান একটি টুপলের মেম্বার কিনা তাও চেক করা যায়।

```python
>>>tuple = (1,2,3,4)
>>>3 in tuple
True

>>> if 3 in tuple:
             print("Present")
         else:
             print("Absent")
```

**এক্সেসেসিং, ইনডেক্সিং, স্লাইসিং ইন ট্যুপল**

ট্যুপলের উপাদান গুলো এক্সসেস/ট্রাভার্স করার জন্য আমরা লিস্টের মত ইন্ডেক্সিং এর সাহায্য নিতে পারি৷ ট্যুপলের ক্ষেত্রে ও ফরওয়ার্ড ইন্ডেক্সিং শুরু হয় ০ থেকে এবং ব্যাকওয়ার্ড ইন্ডেক্সিং শুরু হয় -১ থেকে।

```python
>>> tuple = (4,3,7,6)
>>> tuple[1] 
3
>>>tuple[-1] 
6
```

একটা ট্যুপলের এক বা একাধিক উপাদান কেটে/স্লাইস করে নিয়ে চাইলে অন্য আরেকটি টুপল তৈরি করা যায়। একে স্লাইসিং বলে।

```python
>>> tuple = (2,5,7,9,5)
>>> tuple[1:] 
(5,7,9,5)
```

এর মানে ইন্ডেক্স ১ থেকে শুরু করে পরের সব গুলো উপাদান।

```python
>>>tuple[:3]
(2,5,7,9)
```

এর মানে হচ্ছে ০ শূন্য ইন্ডেক্স থেকে ৩ নং ইন্ডেক্স পর্যন্ত উপাদান গুলো।

```python
>>>tuple[1:3]
```

(5,7)

এর মানে হচ্ছে ইন্ডেক্স নং ১ থেকে শুরু করে ৩ নং ইন্ডেক্সের আগ পর্যন্ত সকল উপাদান তবে ৩নং ইন্ডেক্স নয়।
