বাংলায় পাইথন
  • পরিচিতি
  • ইনস্টলেশন
  • ব্যাসিক কনসেপ্ট
    • সাধারণ কিছু অপারেশন
    • আরও কিছু নিউমেরিক অপারেশন
    • স্ট্রিং
    • ব্যাসিক ইনপুট আউটপুট
    • স্ট্রিং অপারেশন
    • টাইপ কনভার্সন
    • ভ্যারিয়েবল
    • ইনপ্লেস অপারেটর
    • এডিটর এর ব্যবহার
  • কন্ট্রোল স্ট্রাকচার
    • বুলিয়ান
    • if স্টেটমেন্ট
    • else স্টেটমেন্ট
    • বুলিয়ান লজিক
    • অপারেটর প্রেসিডেন্স
    • while লুপ
    • লিস্ট
    • লিস্ট অপারেশন
    • লিস্ট ফাংশন
    • রেঞ্জ
    • for লুপ
  • গুরুত্বপূর্ণ ডাটা টাইপ
    • None
    • ডিকশনারি
    • ডিকশনারি ফাংশন
    • টাপল
    • আবারও লিস্ট
    • লিস্ট ও ডিকশনারি কম্প্রিহেনশন
  • ফাংশন ও মডিউল
    • কোডের পুনব্যবহার
    • ফাংশন
    • ফাংশন আর্গুমেন্ট
    • ফাংশন রিটার্ন
    • কমেন্ট ও ডক স্ট্রিং
    • অবজেক্ট হিসেবে ফাংশন
    • মডিউল
    • স্ট্যান্ডার্ড লাইব্রেরী
    • pip
  • ফাইল ও এক্সেপশন
    • এক্সেপশন
    • এক্সেপশন হ্যান্ডেলিং
    • finally
    • এক্সেপশন Raise
    • Assertions
    • ফাইল খোলা
    • ফাইল পড়া
    • ফাইলে লেখা
    • ফাইল নিয়ে সঠিক কাজ
  • ফাংশনাল প্রোগ্রামিং
    • ভূমিকা
    • ল্যামডা
    • ম্যাপ ও ফিল্টার
    • জেনারেটর
    • ডেকোরেটর
    • রিকারসন
    • সেট
    • itertools
  • অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং
    • ক্লাস
    • ইনহেরিটেন্স
    • ম্যাজিক মেথড
    • অপারেটর অভারলোডিং
    • অবজেক্ট লাইফ সাইকেল
    • ডাটা হাইডিং
    • স্ক্লাস মেথড ও ট্যাটিক মেথড
    • প্রোপার্টিস
  • রেগুলার এক্সপ্রেশন
    • পরিচিতি
    • মেটা ক্যারেক্টার
    • ক্যারেক্টার ক্লাস
    • গ্রুপ
    • স্পেশাল সিকুয়েন্স
  • অতিরিক্ত কিছু বিষয়
    • পাইথনিকনেস
    • PEP
    • main
    • # -- coding: utf-8 --
    • #! /usr/bin/env python
    • CPython
    • ডকুমেন্টেশন পড়া
  • প্যাকেজিং
Powered by GitBook
On this page
  1. গুরুত্বপূর্ণ ডাটা টাইপ

টাপল

ইতোমধ্যে দেখে আসা লিস্টের মতই আরেকটি ডাটা স্ট্রাকচার হচ্ছে Tuple. কিন্তু গুরুত্বপূর্ণ পার্থক্যটি হচ্ছে এটি Immutable টাইপের অর্থাৎ, এর ভ্যালু পরিবর্তন করা যায় না। আবার, লিস্ট যেমন তৈরি করতে হয় দুটো [] ব্র্যাকেট দিয়ে কিন্তু টাপল তৈরি করতে হয় () দিয়ে (যদিও ব্র্যাকেট ছাড়াও শুধু কমা চিহ্ন দিয়ে ভ্যালু গুলোকে আলাদা করেও টাপল তৈরি করা যায়)। আরও কিছু পার্থক্য আছে এবং অবশ্যই লিস্ট ব্যবহার না করে কিছু যায়গায় কেন টাপল ব্যবহার করা উচিৎ তার কিছু কারনও আছে। সেগুলো এখানে আলোচনা করা হবে।

উদাহরণ,

roles = ("Admin", "Operator", "User")   
# Or following line will create the same Tuple
# roles = "Admin", "Operator", "User" 

print(roles[0])

আউটপুট,

Admin

আমরা দেখতে পাচ্ছি টাপল থেকে ভ্যালু অ্যাক্সেসের জন্যও লিস্টের মতই ইনডেক্স ব্যবহার করা যায়। কিন্তু লিস্টের মত নতুন ভ্যালু যুক্ত বা আপডেট করা যায় না। যেমন -

roles = ("Admin", "Operator", "User")   
roles[2] = "Customer"

আউটপুট,

TypeError: 'tuple' object does not support item assignment

খুব স্বাভাবিক ভাবেই roles = () এভাবে ফাকা একটি টাপল ইনিসিয়ালাইজ করা যায়.

একটি টাপলের মধ্যে ভ্যালু হিসেবে অন্য লিস্ট, ডিকশনারি বা টাপল থাকতে পারে। যেমন -

permissions = (("Admin", "Operator", "Customer"), ("Developer", "Tester"), [1, 2, 3], {"Stage": "Development"})

print(permissions[3]["Stage"])

আউটপুট,

Development

টাপল আনপ্যাকিং টাপল আনপ্যাকিং এর মাধ্যমে একটি টাপলের (বা যেকোনো ইটারেবল) মধ্যে থাকা প্রত্যেকটি ভ্যালুকে আলাদা আলাদা নতুন ভ্যারিয়েবলে অ্যাসাইন করা যায় এক লাইন কোড লিখেই। নিচের উদাহরণ দেখি,

numbers = (1, 2, 3)
a, b, c = numbers
print(a)
print(b)
print(c)

অর্থাৎ numbers নামের টাপলের তিনটি ভ্যালুকে পরের লাইনে আলাদা আলাদা তিনটি ভ্যারিয়েবল a, b, c তে জমা রাখা হয়েছে।

আউটপুট,

1
2
3

যদি এমন হয় যে একটি টাপল বা ইটারেবলে অসংখ্য ভ্যালু আছে কিন্তু আমরা এগুলো অল্প কিছু আলাদা আলাদা ভ্যারিয়েবলে জমা রাখতে চাই। অর্থাৎ, এর জন্য সমান চিহ্নের বাম পাশে অসংখ্য ভ্যারিয়েবল লিখতে চাই না তখন নিচের মত করে যেকোনো ভ্যারিয়েবলের সামনে * যুক্ত করে অবশিষ্ট যেকোনো সংখ্যক ভ্যালুকে এর মধ্যে জমা রাখা যায়।

উদাহরণ,

a, b, *c, d = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(a)
print(b)
print(c)
print(d)

এখানে 1 জমা হচ্ছে a এর মধ্যে, 2 জমা হচ্ছে b এর মধ্যে কিন্তু এরপর থেকে বাকিগুলো জমা হচ্ছে c এর মধ্যে। আর ডান পাশের ইটারেবলের শেষ ভ্যালু জমা হচ্ছে বাম পাশের শেষ ভ্যারিয়েবল d এর মধ্যে।

আউটপুট,

1
2
[3, 4, 5, 6, 7, 8]
9
Previousডিকশনারি ফাংশনNextআবারও লিস্ট

Last updated 6 years ago

সংকলন -

নুহিল মেহেদী