বাংলায় পাইথন
  • পরিচিতি
  • ইনস্টলেশন
  • ব্যাসিক কনসেপ্ট
    • সাধারণ কিছু অপারেশন
    • আরও কিছু নিউমেরিক অপারেশন
    • স্ট্রিং
    • ব্যাসিক ইনপুট আউটপুট
    • স্ট্রিং অপারেশন
    • টাইপ কনভার্সন
    • ভ্যারিয়েবল
    • ইনপ্লেস অপারেটর
    • এডিটর এর ব্যবহার
  • কন্ট্রোল স্ট্রাকচার
    • বুলিয়ান
    • 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. ফাংশনাল প্রোগ্রামিং

সেট

এই চ্যাপ্টারটি সর্বশেষ হালনাগাদ হয়েছেঃ সময়ে

লিস্ট এবং ডিকশনারির মতই সেটও এক ধরনের ডাটা স্ট্রাকচার। { } ব্র্যাকেট অথবা set ফাংশন ব্যবহার করে সেট তৈরি করা যায়। লিস্টের মতই কিছু ফাংশন সেট এরও আছে যেমন in ব্যবহার করে কোন এলিমেন্ট এর অস্তিত্ব চেক করা।

সাধারণ গণিতের সেট এর সাথে এই সেট এর অনেক মিল আছে। আমরা পরবর্তীতে কিছু উদাহরণ এর মাধ্যমে সেগুলো দেখবো।

যেমন,

num_set = {1, 2, 3, 4, 5}
word_set = set(["spam", "eggs", "sausage"])

print(3 in num_set)
print("spam" not in word_set)

আউটপুট,

True
False

মজার ব্যাপার হচ্ছে, ফাকা সেট তৈরি করার সময় { } ব্যবহার করা যাবে না কারণ এটা ফাকা ডিকশনারি তৈরি করার সাথে কনফ্লিক্ট করে। বরং set() ব্যবহার করে ফাকা সেট তৈরি করতে হয়।

সেটের কিছু গুরুত্বপূর্ণ বৈশিষ্ট্য

  • সেটের এলিমেন্ট গুলোর কোন ক্রম নেই অর্থাৎ এদেরকে ইন্ডেক্সিং করা যায় না

  • একটি সেটে একই এলিমেন্ট একাধিক বার থাকতে পারে না

  • একটি এলিমেন্ট কোন একটি সেটের অংশ কিনা সেটা খুব দ্রুত চেক করা যায়, লিস্ট এর তুলনায়

সেটের উপর কিছু অপারেশন নিচের মত করা যায়,

# Has some duplicate eliments such as 1
nums = {1, 2, 1, 3, 1, 4, 5, 6}
print(nums)

# To add an eliment to the set
nums.add(-7)

# To remove an element to the set
nums.remove(3)
print(nums)

আউটপুট,

{1, 2, 3, 4, 5, 6}
{1, 2, 4, 5, 6, -7}

সেটের বৈশিষ্ট্য থেকে সহজেই অনুমান করা যায়, মেম্বারশিপ টেস্ট, এবং ডুপ্লিকেট এলিমেন্ট রিমুভ করার জন্য set() এর ব্যাবহার উপযুক্ত।

গণিতের সাথে তুলনীয় কিছু অপারেশন

সাধারণ গণিতে সেট এ যেমন ইউনিয়ন, ইন্টারসেকশন, ডিফারেন্স ইত্যাদি অপারেশন গুলো আছে, তেমনি পাইথনের সেটেও এই অপারেশন গুলো ভ্যালিড।

ইউনিয়ন = | ইন্টারসেকশন = & ডিফারেন্স = - সিমেট্রিক ডিফারেন্স = ^

উদাহরণ,

first = {1, 2, 3, 4, 5, 6}
second = {4, 5, 6, 7, 8, 9}

print(first | second)
print(first & second)
print(first - second)
print(second - first)
print(first ^ second)

আউটপুট,

{1, 2, 3, 4, 5, 6, 7, 8, 9}
{4, 5, 6}
{1, 2, 3}
{8, 9, 7}
{1, 2, 3, 7, 8, 9}

কিছু সিদ্ধান্ত

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

নিচের অনুসিদ্ধান্ত গুলো কাজে আসতে পারে,

  • ডিকশনারি -

    • যখন key-value জোড় এর মাধ্যমে বেশ কিছু ভ্যালু নিয়ে কাজ করতে হবে

    • যখন key এর উপর ভিত্তি করে ডাটা খুঁজে নেয়ার প্রয়োজন পর্বে বেশি

    • যখন তখন ডাটা গুলোর পরিবর্তন দরকার পরলে

  • লিস্ট -

    • যখন ডাটা গুলোর র‍্যান্ডোম অ্যাক্সেস দরকার পরবে এবং তা আমরা খুব সহজে ইনডেক্স ধরে করতে পারি ।

    • সাধারণ একটি iterable দরকার হলে লিস্ট নিয়ে কাজ করা যেতে পারে

  • সেট -

    • যখন এলিমেন্ট গুলোর মধ্যে ইউনিকনেস দরকার পরবে।

    • যখন ডাটা গুলোর র‍্যান্ডোম অ্যাক্সেস দরকার পরবে না।

  • টাপল -

    • যখন ডাটা পরিবর্তনের দরকার একদমই পরবে না। টাপল immutable.

PreviousরিকারসনNextitertools

Last updated 6 years ago

সংকলন -

নুহিল মেহেদী