🐍
পাইথন প্রোগ্রামিং ল্যাঙ্গুয়েজ
  • পাইথন প্রোগ্রামিং ল্যাংগুয়েজ
  • সূচি
  • ব্রিফ হিস্টোরি অফ পাইথন
  • অধ্যায়ঃ১ পাইথন বেসিক
    • ভ্যারিয়েবল
    • কন্সট্যান্টস
    • আইডেন্টিফাইয়ারস
    • নেমিং কনভেনশন
    • ইন্ডেনটেশন
    • কমেন্টস
    • ডক স্ট্রিংস
    • রিজার্ভড কি-ওয়ার্ডস
    • অপারেটরস
      • এরিথমেটিক অপারেটরস
      • রিলেশনাল অপারেটরস
      • লজিক্যাল অপারেটরস
      • বিট-ওয়াইজ অপারেটরস
      • অ্যাসাইনমেন্ট অপারেটরস
      • আইডেন্টিটি অপারেটরস
      • মেম্বারশিপ অপারেটরস
    • ইনপুট-আউটপুট
  • অধ্যায়ঃ ২ ডেটা টাইপ্স
    • জেনারেল টাইপ্স
      • ইন্টিগ্রাল
        • ইন্টিজার
        • বুলিয়ান
      • ফ্লোটিং
        • ফ্লোটিং পয়েন্ট
        • কমপ্লেক্স
        • ডেসিমাল
      • স্ট্রিংস
    • কালেকশন ডেটা টাইপ্স
      • সিকোয়েন্স টাইপ
        • লিস্ট
        • ট্যুপল
      • সেট টাইপ
        • সেট
        • ফ্রোজেন সেট
      • ম্যাপিং
        • ডিকশনারি
        • কাউন্টার
  • অধ্যায় ৩ঃ কন্ট্রোল স্ট্রাকচারস
    • কন্ডিশনাল স্টেটমেন্ট
    • লুপ
      • ফর লুপ
      • হোয়াইল লুপ
      • রেঞ্জ range()
      • enumerate()
      • zip()
  • অধ্যায় ৪ঃ পাইথন কম্প্রিহেনশন্স
    • লিস্ট কম্প্রিহেনশন্স
    • ডিকশনারি কম্প্রিহেনশন্স
    • সেট কম্প্রিহেনশন্স
  • অধ্যায় ৫ঃ ফাংশনাল প্রোগ্রামিং
    • পাইথন ফাংশন্স
    • আর্গুমেন্টস অব ফাংশন্স
      • ডিফল্ট আর্গুমেন্টস
      • রিকোয়ার্ড আর্গুমেন্টস
      • কি-ওয়ার্ড আর্গুমেন্টস
      • ভ্যারিবেল লেনথ আর্গুমেন্টস
    • রিকার্শন ইন পাইথন
Powered by GitBook
On this page

Was this helpful?

  1. অধ্যায়ঃ ২ ডেটা টাইপ্স
  2. কালেকশন ডেটা টাইপ্স
  3. সেট টাইপ

সেট

সেট পাইথনের একটি ইমিটেবল ডেটা টাইপ। ডিকশিনারির মত পাইথনে সেট লিখার জন্য কার্লি ব্রেসিস {} ব্যবহার করা হয়, তবে এখানে ডিকশিনারির মত "কি-ভ্যালু" পেয়ার থাকে না। ডেটা গুলো অবিন্যস্ত অবস্থায় থাকে। আবার set() মেথড দিয়ে ও সেট ক্লাসের অবজেক্ট তৈরি করা যায়৷ সেটের প্রতিটি ভ্যালু ই হয় ইউনিক। মানে তুমি চাইলে একই ডেটা একাধিক বা রাখতে পার কিন্তু পাইথন সেসব বাদ দিয়ে প্রত্যেকটি ডেটা একবার করে রাখবে।

>>> a_set={'a','b','c','d','c'}
>>> type(a_set)
<class 'set'>
>>> a_set
{'c', 'd', 'b', 'a'}

এখানে আমি ‘a’ এবং ‘c’ দু’বার করে রাখলে ও পাইথন সেগুলোকে একবার করে সেটে জমা করেছে।

সেট অপারেশন্স

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

আপডেট

কোন সেটে নতুন কোন মেম্বার যোগ করার জন্য add() মেথড ব্যবহার করা হয়।

>>>a_set = {'a','b','c','d'} 
>>>a_set.add('e'} 
>>>print(a_set)
{'a','b','c','d','e'}

তবে add() মেথড ব্যবহার করে আমরা প্রতিবারে একটির বেশি এলিমেন্ট যোগ করতে পারব না। একসাথে একাধিক এলিমেন্ট যোগ করার জন্য update() মেথড ব্যবহার করতে হয়।

>>>a_set = {'a','b','c','d'} 
>>>a_set.update('e','f','g'} 
>>>print(a_set)
{'a','b','c','d','e','f','g'}

ডিলিটং

সেটের এলিমেন্ট ডিলিট করার জন্য discard(),remove(),pop() এই তিনটি মেথড ব্যবহার করা হয়। pop() মেথড একেক বার একেক এলিমেন্ট কে ডিলিট করে। কারণ সেট অন্যান্য ডেটা টাইপের মত ইন্ডেক্সিং সাপোর্ট করে না।

>>>a_set = {'a','b','c','d'} 
>>>a_set.pop()
>>>print(a_set)
{'a','b','c'}

discard() এবং remove() মেথড একই কাজ করে, তবে একটি পার্থক্য হলঃ

discard() মেথড ব্যবহার করে যদি কোন এলিমেন্ট ডিলিট করতে হয় তবে সে এলিমেন্ট যদি সেটে না থাকে তাহলে ও পাইথন কোন এরর মেসেজ দেখাবে না।

কিন্তু remove () মেথডের ক্ষেত্রে যে এলিমেন্ট আমরা ডিলিট করব সেটি সেটে অবশ্যই থাকতে হবে তা না হলে পাইথন এরর দেখাবে৷

>>> a_set = {'a','v','d'}
>>> type(a_set)
<class 'set'>
>>> a_set.remove('a')
>>> a_set
{'d', 'v'}
>>> a_set.discard('a')
>>> a_set.remove('a')
Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    a_set.remove('a')
KeyError: 'a'

ইন্ডেক্সিং

সেট অন্যান্য ডেটা টাইপের মত ইন্ডেক্সিং সাপোর্ট করে না। তুমি যদি কোন সেটের এলিমেন্ট কে তার ইন্ডেক্স দিয়ে এক্সেস করতে চান তাহলে এরর দেখাবে।

>>>a_set = {'a','b',1,'c'}
>>>print(a_set[0])
TypeError: 'set' object does not support indexing

এ কারনেই আমরা যখন add() বা update() ফাংশন ব্যবহার করি তখন একেক বার একের জায়গায় এলিমেন্ট যোগ হয়।

ইউনিয়ন

দু’টো বা তার বেশি সেটের সব উপাদান গুলো যোগ করার পদ্ধতিকে সেট ইউনিয়ন বলে।

>>> a = {'a','b','c'}
>>> b = {'1','2','3'}
>>> a|b
{'3', '2', 'a', 'c', 'b', '1'}
>>> c = {1,2,3}
>>> a|b|c
{1, '3', '2', 2, 3, 'a', 'c', 'b', '1'}

এখানে লক্ষ করবে সেট গুলোতে ভিন্ন ধরনের ডেটা থাকা সত্ত্বেও সেট গুলোর মধ্যে ইউনিয়ন অপারেশন চালানো সম্ভব।

ইন্টারসেকশন

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

>>> a&b&c
set()
>>> a = {'a','b','c'}
>>> b = {'b','c','d'}
>>> a&b
{'c', 'b'}

সেট ডিফারেন্স

একটি সেট থেকে আরেকটি সেট বাদ দেয়াকে সেট ডিফারেন্স বলে।

>>> a-b
{'a'}

এছাড়া ও কোন উপাদান সেটে আছে কিনা। কোন সেটে অন্য কোন সেটের সাবসেট কিনা ইত্যাদি অপারেশন পাইথন সেট এ করা যায়।

>>> 'a' in a
True
>>> 's' in a
False
>>> a = {'a','b'}   
>>> b = {'a'}
>>> a > b    #subset
True
>>> a < b
False
Previousসেট টাইপNextফ্রোজেন সেট

Last updated 4 years ago

Was this helpful?