What is Set in Python | Learn in Easy Bengali 2024

আজকে আমরা পাইথনের একটি অত্যন্ত গুরুত্বপূর্ণ ডেটা – স্ট্রাকচার, সেট (Set in Python) নিয়ে আলোচনা করব। এই পোস্টে আমরা জানব সেট কি ,সেটের মেথডগুলি এবং পাইথনে এটি কে কিভাবে ব্যবহার করব ?

সেট হল পাইথনের আরেকটি built-in ডেটা – স্ট্রাকচার, যদিও সেট অনেকটাই লিষ্ট এর মতন তবে পার্থক্যটা হলো যে সেটে কোন ডুপ্লিকেট এলিমেন্ট কে রাখা যায় না ।
সেট সম্পর্কে আমাদের কিছু গুরুত্বপূর্ণ জিনিস জেনে নেওয়া দরকার।

all-about-sets-in-python-in-easy-bengali-techinbengali.com
Set in Python


অর্থাৎ আমরা সেটে এলিমেন্ট কে add , delete করতে পারব , কিন্তু কোন এলিমেন্ট কে update(change) করতে পারবো না।


Unordered মানে সেটে এলিমেন্ট গুলি নির্দিষ্ট কোন অর্ডার ফলো করে না অর্থাৎ এলিমেন্ট গুলি এলোমেলো( random ) অর্ডারে থাকে।

আমরা সেটে কোন ডুপ্লিকেট এলিমেন্টকে রাখতে পারি না।
Set এ True এবং 1 এই দুটো ভ্যালু সমান এবং এটি ডুপ্লিকেট হিসেবে চিহ্নিত হবে। যেটা প্রথমে দেওয়া হবে , সেট সেটাকে রেখে অন্যটাকে বাদ দেবে। যদিও এটি False এবং 0 ক্ষেত্রে ও প্রযোজ্য।

Also Read :- What is Coding & Programming in Easy Bengali? প্রোগ্রামিং এবং কোডিং কি? 2023

আমরা সেটকে (Set in Python -এ) দুই ভাবে তৈরি করতে পারি।

Normal way

সেটের এলিমেন্ট গুলি কার্লি ব্রাকেটের( { } ) মধ্যে কমা( , ) দিয়ে আলাদা করে লেখা হয়।

Example

myset={1,2,3,4}
print(myset)
print(type(myset))
Python

Output

{1, 2, 3, 4}
<class 'set'>

Using set constructor

আমরা সেটের built-in set( ) ফাংশন ব্যবহার করে একটি সেটকে লিখতে পারি।

Example

myset=set([1,2,3,4])
print(myset)
print(type(myset))
Python

Output

{1, 2, 3, 4}
<class 'set'>

আমরা লিস্ট বা টাপেলের মতন ইনডেক্স ব্যবহার করে সরাসরি সেটে ভ্যালু দেখতে পারি না।যদি আমরা ইনডেক্স ব্যাবহার করে সেটের কোনো পজিসিশনের ভ্যালু দেখতে চাই তাহলে আমরা error পাব।

Example – 1

myset=set([1,2,3,4])
print(myset[1])
Python

Output – 2

ERROR!
Traceback (most recent call last):
  File "<main.py>", line 4, in <module>
TypeError: 'set' object is not subscriptable

তবে for loop ব্যবহার করে সেট থেকে একটা একটা করে এলিমেন্টকে এক্সেস করতে পারি।

Example – 1

myset=set([1,2,3,4])
for item in myset:
    print(item)
Python

Output – 2

1
2
3
4

Also Read :- Python কি এবং কেন শিখব? What is Python in Easy Bengali? 2023

আমরা add ( ) মেথড ব্যবহার করে একটি এলিমেন্টকে সরাসরি সেটে insert করতে পারি।

Example

myset=set([1,2,3,4])
myset.add(5)
print(myset)
Python

Output

{1, 2, 3, 4, 5}

আমরা remove ( ) বা discard ( ) মেথড ব্যবহার করে সেট থেকে কোন এলিমেন্ট কে ডিলিট করতে পারি।
যে এলিমেন্ট তাকে delete করতে চাইছি যদি সেই এলিমেন্ট টা সেটে exists না করে তাহলে remove ( ) মেথড error দেবে কিন্তু discard ( ) মেথড error দেবে না।
এ বিষয়ে বিশদে পরে আলোচনা করব।

Example – 1 of remove ( ) method

myset=set([1,2,3,4])
myset.remove(5)
print(myset)
Python

Output – 1 of remove ( ) method

ERROR!
Traceback (most recent call last):
  File "<main.py>", line 4, in <module>
KeyError: 5

Example – 2 of discard ( ) method

myset=set([1,2,3,4])
myset.discard(5)
print(myset)
Python

Output – 2 of discard ( ) method

{1, 2, 3, 4}

Also Read :- Learn Python Free for Beginners in Bengali 2023

আমরা আগেই আলোচনা করেছি যে সেটে কোন এলিমেন্টকে add বা delete করা গেলেও , আমরা সেটের কোন এলিমেন্টকে পরিবর্তন( update) করতে পারব না অর্থাৎ সেটের এলিমেন্ট unchangeable।

len ( )

একটি সেটের length বা দৈর্ঘ্য রিটার্ন করে।

Example

myset=set([1,2,3,4])
print(len(myset))
Python

Output

4

Membership ( in )

এটি দিয়ে আমরা দেখতে পারি একটি ভ্যালু(element ) সেটের এর মধ্যে আছে কি না ? যদি থাকে True রিটার্ন করবে যদি না থাকে False রিটার্ন করবে।

Example

myset=set([1,2,3,4])
print(3 in myset)
print(5 in myset)
Python

Output

True
False

Membership ( not in )

এটি দিয়ে আমরা দেখতে পারি একটি ভ্যালু(element ) সেটের এর মধ্যে আছে কি না ? যদিও এটির ব্যবহার in এর ঠিক উল্টো (opposite)। যদি না থাকে True রিটার্ন করবে যদি থাকে False রিটার্ন করবে।

Example

myset=set([1,2,3,4])
print(3 not in myset)
print(5 not in myset)
Python

Output

False
True

max ( )

একটি সেটের মধ্যে থেকে বড়ো (maximum) ভ্যালুটি রিটার্ন করবে।

Example

myset=set([1,2,3,4])
print(max(myset))
Python

Output

4

min ( )

একটি সেটের মধ্যে থেকে ছোট (minimum) ভ্যালুটি রিটার্ন করবে।

Example

myset=set([1,2,3,4])
print(min(myset))
Python

Output

1

sum ( )

একটি সেটের মধ্যে সকল সংখ্যার যোগফল রিটার্ন করবে।

Example

myset=set([1,2,3,4])
print(sum(myset))
Python

Output

10

sorted ( )

একটা নতুন sorted লিস্ট রিটার্ন করবে। কিন্তু অরিজিনাল সেটটা একই থাকবে, যেহেতু সেট immutable।

Example

myset=set([8,0,2,1,3,10,100,11])
print(sorted(myset))
print(myset)
Python

Output

[0, 1, 2, 3, 8, 10, 11, 100]
{0, 1, 2, 3, 100, 8, 10, 11}

enumerate ( )

এই ফাংশান টি সেটের প্রতিটি এলিমেন্ট এবং তার ইনডেক্স নাম্বার নিয়ে একটি tuple তৈরি করবে এবং enumerate অবজেক্ট আকারে রিটার্ন করবে।

Example

myset=set([8,0,2,1,3,10,100,11])
for item in enumerate(myset):
    print(item)
Python

Output

(0, 0)
(1, 1)
(2, 2)
(3, 3)
(4, 100)
(5, 8)
(6, 10)
(7, 11)

all ( )

True রিটার্ন করবে যদি সেটের প্রত্যেকটি এলিমেন্ট True হয় । অনথ্যায় False রিটার্ন করবে ।

Example

myset=set([0,1,2])
print(all(myset))
myset=set([1])
print(all(myset))
Python

Output

False
True

উপরের কোডটি লক্ষ্য করলে দেখা যাবে যেহেতু সেট এর একটি এলিমেন্ট 1 সেই কারণেই আমাদের , all () ফাংশন True রিটার্ন করেছে। কারণ 1 এবং True দুটোর ভ্যালু একই।

any ( )

True রিটার্ন করবে যদি কমপক্ষে সেটের একটিএলিমেন্ট True হয় । অনথ্যায় False রিটার্ন করবে ।

Example

myset=set([0,1,2])
print(any(myset))
myset=set()
print(any(myset))
Python

Output

True
False

উপরের কোডটি লক্ষ্য করলে দেখা যাবে যেহেতু কমপক্ষে , সেট এর একটি এলিমেন্ট 1 বা True সেই কারণেই আমাদের , any ( ) ফাংশন True রিটার্ন করেছে।
এবং যেহেতু পরের কোডটিতে , সেটের মধ্যে কোন এলিমেন্ট নেই অর্থাৎ সেটটি সম্পূর্ণ ফাঁকা ( empty ) সেই কারণে any ( ) ফাংশন False রিটার্ন করেছে।

tuple ( )

এটির মাধ্যমে আমরা যে কোন sequence কে ( টাপল (tuple) , ডিকশনারি (dictionary) , সেট (set) , স্ট্রিং (string) ) কে টাপলে পরিবর্তন করতে পারবো।

Example

mytuple='techinbengali.com'
print(tuple(mytuple))
Python

Output

('t', 'e', 'c', 'h', 'i', 'n', 'b', 'e', 'n', 'g', 'a', 'l', 'i', '.', 'c', 'o', 'm')

Also Read :- Function in Python | Easy Bengali 2024

update ( )

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

Example

myset=set([0,1,2])
myset2=set([3,4,5])
myset.update(myset2)
print(myset)
Python

Output

{0, 1, 2, 3, 4, 5}

add ( )

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

Example

myset=set([0,1,2])
myset.add(3)
print(myset)
Python

Output

{0, 1, 2, 3}

copy ( )

এই মেথডটিকে আমাদেরকে , সেট টির কপি রিটার্ন করে।

Example

myset=set([0,1,2])
print(myset.copy())
Python

Output

{0, 1, 2}

pop ( )

এই মেথডটি সেট থেকে যেকোনো ( arbitrary ) একটা ভ্যালুকে ডিলিট করবে এবং সেই ভ্যালু টাকে রিটার্ন করবে। তবে সেটে যদি কোন এলিমেন্ট না থাকে অর্থাৎ সেটটি সম্পূর্ণ ফাঁকা থাকে , তাহলে KeyErrror নামে একটি error দেবে।

Example – 1

myset=set([0,1,2,100,20,87])
print(myset.pop())
Python

Output – 1

0

Example – 2

myset=set()
print(myset.pop())
Python

Output – 2

ERROR!
Traceback (most recent call last):
  File "<main.py>", line 4, in <module>
KeyError: 'pop from an empty set'

remove ( )

এই মেথডটি সেট থেকে একটা এলিমেন্ট( যেই এলিমেন্ট টাকে আমরা আরগুমেন্টে পাস করবো ) ডিলিট করবে। তবে এলিমেন্ট টি যদি সেটে না থাকে , তাহলে KeyErrror নামে একটি error দেবে।

Example – 1

myset=set([1,2,3,4])
myset.remove(4)
print(f"After deleting the set will be: {myset}")
Python

Output – 1

After deleting the set will be: {1, 2, 3}

Example – 2

myset=set([1,2,3,4])
myset.remove(5) # give an error, beacuse 5 is not present in myset
print(f"After deleting the set will be: {myset}") 
Python

Output – 2

ERROR!
Traceback (most recent call last):
  File "<main.py>", line 4, in <module>
KeyError: 5

discard ( )

এই মেথডটি সেট থেকে একটা এলিমেন্ট( যেই এলিমেন্ট টাকে আমরা আরগুমেন্টে পাস করবো ) ডিলিট করবে। তবে এলিমেন্ট টি যদি সেটে না থাকে , তাহলে এই মেথডটি কোন error দেবে না।

Example – 1

myset=set([1,2,3,4])
myset.discard(4)
print(f"After deleting the set will be: {myset}")
Python

Output – 1

After deleting the set will be: {1, 2, 3}

Example – 2

myset=set([1,2,3,4])
myset.discard(6) # I'm not getting any errors even though 6 is absent in my set.
print(f"After deleting the set will be: {myset}")
Python

Output – 2

After deleting the set will be: {1, 2, 3}

clear ( )

এই মেথডটি সেট থেকে সমস্ত এলিমেন্ট কে ডিলিট করে দেয়।

Example

myset=set([1,2,3])
myset.clear()
print(myset)
Python

Output

set()

অংকে যেমন আমাদের সেট আছে , ঠিক তেমনি পাইথনে আমরা সেটের সমস্ত অ্যাডভান্স মেথড ব্যবহার করে mathemetical ক্যালকুলেশন করতে পারি।
আসুন এবার দেখে নেওয়া যাক পাইথনে কি কি অ্যাডভান্স মেথড আছে যেগুলি সাহায্যে আমরা সেট অপারেশন করতে পারি।

Also Read :- File Handling in Python | Easy Bengali 2023

issubset ( )

আসুন অল্প করে জেনে নিই subset কি, যদি কোন একটা সেটের ( এখানে test_set ) প্রত্যেকটি এলিমেন্ট অপর আরেকটি সেটের ( এখানে myset ) প্রত্যেকটি এলিমেন্টের সঙ্গে সমান হয় তাহলেই আমরা সেই সেটটিকে ( এখানে test_set ) অপর সেটটির ( এখানে myset ) subset বলতে পারি।

subset-in-python-in-easy-bengali-techinbengali.com
Set in Python

এখানে test_set.issubset(myset) সিনট্যাক্স টির মানে হল , test_set কি myset এর subset ? যদি subset হয় তাহলে True রিটার্ন করবে অন্যথায় False।

যদিও এটিকে আমরা test_set < = myset এভাবেও লিখতে পারি। আমরা আমাদের কাজের ক্ষেত্রে , আমাদের সুবিধার মতন যে কোন একটি ব্যবহার করতে পারি।

test_set.issubset(myset)
Python

Example

myset=set([1,2,3,4,5])
test_set=set([2,3,4])
print(test_set.issubset(myset))
#    or
print(test_set <= myset)
Python

Output

True

issuperset ( )

আসুন অল্প করে জেনে নিই superset কি, যদি কোন একটা সেটের ( এখানে myset ) প্রত্যেকটি এলিমেন্ট অপর আরেকটি সেটের ( এখানে test_set ) প্রত্যেকটি এলিমেন্টের সঙ্গে সমান হয় তাহলেই আমরা সেই সেটটিকে ( এখানে myset ) অপর সেটটির ( এখানে test_set ) super set বলতে পারি।
এক কথায় বলতে গেলে এটি সাবসেটের ঠিক উল্টো এখানে myset হলো সুপার সেট।

superset-in-python-in-easy-bengali-techinbengali.com
Set in Python

এখানে myset.issuperset(test_set) সিনট্যাক্স টির মানে হল , myset কি test_set এর superset ? যদি super set হয় তাহলে True রিটার্ন করবে অন্যথায় False।

যদিও এটিকে আমরা myset > = test_set এভাবেও লিখতে পারি। আমরা আমাদের কাজের ক্ষেত্রে , আমাদের সুবিধার মতন যে কোন একটি ব্যবহার করতে পারি।

myset.issuperset(test_set)
Python

Example

myset=set([1,2,3,4,5])
test_set=set([2,3,4])
print(myset.issuperset(test_set))
#    or
print(myset >= test_set)
Python

Output

True

union ( )

সহজ ভাবে বলতে গেলে , union ( ) মেথডটি একটি সেট রিটার্ন করে , যার মধ্যে দুটি সেটের সকল এলিমেন্ট গুলি থাকবে। কিন্তু কোন ডুপ্লিকেট এলিমেন্ট থাকবে না।

যদিও এটিকে আমরা myset | test_set এভাবেও লিখতে পারি। আমরা আমাদের কাজের ক্ষেত্রে , আমাদের সুবিধার মতন যে কোন একটি ব্যবহার করতে পারি।

union-in-python-in-easy-bengali-techinbengali.com
Set in Python

Example

myset=set([3,2,6,7,5])
test_set=set([1,4,2,6])
print(myset.union(test_set))
#    or
print(myset | test_set)
Python

Output

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

intersection ( )

সহজ ভাবে বলতে গেলে , intersection ( ) মেথডটি একটি সেট রিটার্ন করে , যার মধ্যে দুটি সেটের কমন এলিমেন্ট গুলি থাকবে।

যদিও এটিকে আমরা myset & test_set এভাবেও লিখতে পারি। আমরা আমাদের কাজের ক্ষেত্রে , আমাদের সুবিধার মতন যে কোন একটি ব্যবহার করতে পারি।

inter-section-in-python-in-easy-bengali-techinbengali.com
Set in Python

Example

myset=set([3,2,6,7,5])
test_set=set([1,4,2,6])
print(myset.intersection(test_set))
#    or
print(myset & test_set)
Python

Output

{2, 6}

difference ( )

difference ( ) মেথডটি একটি সেট রিটার্ন করে , যার মধ্যে দুটি সেটের কমন এলিমেন্ট গুলি বাদ দিয়ে set 1 এর সকল এলিমেন্ট গুলি থাকবে।

যদিও এটিকে আমরা myset – test_set এভাবেও লিখতে পারি। আমরা আমাদের কাজের ক্ষেত্রে , আমাদের সুবিধার মতন যে কোন একটি ব্যবহার করতে পারি।

set-difference-section-in-python-in-easy-bengali-techinbengali.com
Set in Python

Example

myset=set([3,2,6,7,5])
test_set=set([1,4,2,6])
print(myset.difference(test_set))
#    or
print(myset - test_set)
Python

Output

{3, 5, 7}

symmetric_difference ( )

symmetric_difference ( ) মেথডটি একটি সেট রিটার্ন করে , যার মধ্যে দুটি সেটের কমন এলিমেন্ট গুলি বাদ দিয়ে , দুটি সেট এর বাকি থাকা সকল এলিমেন্ট গুলি থাকবে।

যদিও এটিকে আমরা myset ^ test_set এভাবেও লিখতে পারি। আমরা আমাদের কাজের ক্ষেত্রে , আমাদের সুবিধার মতন যে কোন একটি ব্যবহার করতে পারি।

set-symmetric-difference-in-python-in-easy-bengali-techinbengali.com
Set in Python

Example

myset=set([3,2,6,7,5])
test_set=set([1,4,2,6])
print(myset.symmetric_difference(test_set))
#    or
print(myset ^ test_set)
Python

Output

{1, 3, 4, 5, 7}

Also Read :- What is Module in Python | Learn in Easy Bengali 2024

এই পোস্টটি পড়ে আপনাদের মূলবান মতামত জানাতে আমাদের কমেন্ট করুন। আপনাদের কোনো প্রশ্ন থাকলে নির্দ্ধিধায় জিজ্ঞেসা করুন। আমরা চেষ্টা করবো যতো দ্রুত সম্ভব উত্তর দেবার।
ধন্যবাদ!!

Leave a Comment