Python Data Types
Sets in Python
Python Language এ Set কি?
Python Language এ List এবং Tuple এর মতই আরেকটি ডাটা স্ট্রাকচার হচ্ছে Set. পার্থক্যটি হচ্ছে আপনি চাইলে List এবং Tuple এর মধ্যে duplicate value রাখতে পারবেন কিন্তু Set এ কোনো duplicate Value রাখতে পারবেন না। আর List এবং Tuple এর value গুলো index আকারে সাজানো থাকে কিন্তু Set এর Value গুলো indexing আকারে থাকেনা বা indexing করা যায় না। সেটা অবশ্য লাগেওনা, কারণ Set এর প্রত্যেকটি value ই ইউনিক। মূলতঃ গাণিতিক কাজ যেমন union, intersection এবং symmetric difference ইত্যাদি বের করার জন্য Set ব্যবহৃত হয়।
Set কিভাবে তৈরী করা হয়?
set তৈরী করতে হলে আপনাকে (curly braces) { } ব্র্যাকেট অথবা set ফাংশন ব্যবহার করতে হবে , তবে ফাকা set তৈরি করার সময় { } ব্যবহার করা যাবে না কারণ এটা ফাকা ডিকশনারি তৈরি করার সাথে কনফ্লিক্ট করবে। বরং set() function ব্যবহার করে ফাকা সেট তৈরি করতে হয়।চলুন একটি উদাহরণ দেখা যাক :
# set of integers my_set = {1, 2, 3} print(my_set) # set of mixed datatypes my_set = {1.0, "Hello", (1, 2, 3)} print(my_set)
set এর মধ্যে পরিবর্তন করা যাবে (mutable) এইরকম Data Type যেমন List এবং Dictionary রাখা যাবেনা।
# set do not have duplicates # Output: {1, 2, 3, 4} my_set = {1,2,3,4,3,2} print(my_set) # set cannot have mutable items # here [3, 4] is a mutable list # If you uncomment line #12, # this will cause an error. # TypeError: unhashable type: 'list' #my_set = {1, 2, [3, 4]} # we can make set from a list # Output: {1, 2, 3} my_set = set([1,2,3,2]) print(my_set)
উল্লেখ্য , এখানে আপনি যদি লাইন ১২ কে uncomment করেন , তাহলে পাইথন আপনাকে error প্রদর্শন করবে।
Web Development, Data Science and Big Data Course with Python, MongoDB, MySQL and Django
কিভাবে পাইথন Set এ চেঞ্জ আনবেন?
আমরা আগেই জেনেছি , set এ কোনো indexing থাকেনা এবং এর value গুলো unordered অর্থাৎ যেইভাবে ইচ্ছা সেইভাবে রাখা যায় , শুধু duplicate না হলেই হলো। আর যেহেতু set এ কোনো index থাকেনা তাই একে আপনি index ধরে কোনো রকম access অথবা slicing করতে পারবেন না। তবে আপনি চাইলে add() function দিয়ে set এর মধ্যে নতুন value add করতে পারবেন এবং update() function দিয়ে আগের value কে update করতে পারবেন। তাছাড়া update Function দিয়ে আপনি অন্যান্য data type যেমন list, tuple কে set এ পরিবর্তন করতে পারবেন। চলুন কয়েকটি উদাহরণ দিয়ে বুঝা যাক:
# initialize my_set my_set = {1,3} print(my_set) # if you uncomment line 9, # you will get an error # TypeError: 'set' object does not support indexing #my_set[0] # add an element # Output: {1, 2, 3} my_set.add(2) print(my_set) # add multiple elements # Output: {1, 2, 3, 4} my_set.update([2,3,4]) print(my_set) # add list and set # Output: {1, 2, 3, 4, 5, 6, 8} my_set.update([4,5], {1,6,8}) print(my_set)
উল্লেখ্য , এখানে আপনি যদি লাইন ৯ কে uncomment করেন , তাহলে পাইথন আপনাকে error প্রদর্শন করবে। কারণ set এ indexing support করেনা।
Set থেকে কোনো element কিভাবে remove করবেন?
Set থেকে কোনো element কে remove করার জন্য discard() function এবং remove() function ব্যবহৃত হয়। পার্থক্য হচ্ছে discard() function দিয়ে remove করা element যদি Set এ না থাকে পাইথন আপনাকে কোনো error প্রদর্শন করবেনা, এবং set অপরিবর্তনীয় থাকবে, অন্যদিকে remove() function দিয়ে কোনো কিছু remove করা কালীন সেই element যদি set এ না থাকে, তাহলে Python আপনাকে error প্রদর্শন করবে। নিচের উদাহরণ গুলো লক্ষ্য করুন :
# initialize my_set my_set = {1, 3, 4, 5, 6} print(my_set) # discard an element # Output: {1, 3, 5, 6} my_set.discard(4) print(my_set) # remove an element # Output: {1, 3, 5} my_set.remove(6) print(my_set) # discard an element # not present in my_set # Output: {1, 3, 5} my_set.discard(2) print(my_set) # remove an element # not present in my_set # If you uncomment line 27, # you will get an error. # Output: KeyError: 2 #my_set.remove(2)
উল্লেখ্য , এখানে আপনি যদি লাইন ২৭ কে uncomment করেন , তাহলে পাইথন আপনাকে error প্রদর্শন করবে। কারণ remove() function দিয়ে যেটি রিমুভ করার চেষ্টা করতেছেন সেটি Set এর মধ্যে নেই।
একইভাবে আপনি চাইলে Set থেকে কোনো element কে pop() function দিয়ে remove অথবা return করতে পারবেন। আর যেহেতু Python Set এ কোনো index থাকেনা , তাই আপনি বুঝতে পারবেন না , কোন আইটেম টি remove হয়েছে। অর্থাৎ randomly Item remove হবে।
# initialize my_set # Output: set of unique elements my_set = set("HelloWorld") print(my_set) # pop an element # Output: random element print(my_set.pop()) # pop another element # Output: random element my_set.pop() print(my_set)
পাইথনের clear() function দিয়ে আপনি পুরো set কেই remove করে দিতে পারেন। নিচের উদাহরণ দেখুন :
# initialize my_set # Output: set of unique elements my_set = set("HelloWorld") # clear my_set #Output: set() my_set.clear() print(my_set)
Web Development, Data Science and Big Data Course with Python, MongoDB, MySQL and Django
পাইথনে set দিয়ে কিছু অপারেশন
আগেই বলা হয়েছে python এ গাণিতিক কাজ যেমন union, intersection এবং symmetric difference ইত্যাদি বের করার জন্য Set ব্যবহৃত হয়। চলুন এইরকম কিছু কাজ করা যাক :
Set Union
গণিতে Union বলা হয় যখন একাধিক সেট elements থেকে common এবং uncommon সব গুলু element কে নিবে এবং কোনো duplicate value নিবেনা। ব্যাপারটা নিচের ছবির মতো:
আর পাইথনে Union এর কাজটি করা হয় ( । ) অথবা union() function দিয়ে। চলুন একটি উদাহরণ দিয়ে বুঝে নেয়া যাক :
# initialize A and B A = {1, 2, 3, 4, 5} B = {4, 5, 6, 7, 8} # use | operator # Output: {1, 2, 3, 4, 5, 6, 7, 8} print(A | B) # use union function >>> A.union(B) {1, 2, 3, 4, 5, 6, 7, 8} # use union function on B >>> B.union(A) {1, 2, 3, 4, 5, 6, 7, 8}
Set Intersection
গণিতে Intersection বলা হয় যখন একাধিক সেট elements থেকে শুধু common সব গুলু element কে নিবে এবং কোনো uncommon বা duplicate value নিবেনা। ব্যাপারটা নিচের ছবির মতো:
আর পাইথনে intersection এর কাজটি করা হয় ( & ) অথবা intersection() function দিয়ে। চলুন একটি উদাহরণ দিয়ে বুঝে নেয়া যাক :
# initialize A and B A = {1, 2, 3, 4, 5} B = {4, 5, 6, 7, 8} # use & operator # Output: {4, 5} print(A & B) # use intersection function on A >>> A.intersection(B) {4, 5} # use intersection function on B >>> B.intersection(A) {4, 5}
Set Difference
গণিতে Set Difference বলা হয় যখন একাধিক সেট elements এর প্রথম set এর যেইসব element বাকি কোনো set এ পাওয়া যাবেনা শুধু সেগুলোকে নিবে । ব্যাপারটা নিচের ছবির মতো:
আর পাইথনে difference এর কাজটি করা হয় ( – ) অথবা difference() function দিয়ে। চলুন একটি উদাহরণ দিয়ে বুঝে নেয়া যাক :
# initialize A and B A = {1, 2, 3, 4, 5} B = {4, 5, 6, 7, 8} # use - operator on A # Output: {1, 2, 3} print(A - B) # use difference function on A >>> A.difference(B) {1, 2, 3} # use - operator on B >>> B - A {8, 6, 7} # use difference function on B >>> B.difference(A) {8, 6, 7}
Web Development, Data Science and Big Data Course with Python, MongoDB, MySQL and Django
Set Symmetric Difference
গণিতে Set Symmetric Difference বলা হয় যখন একাধিক সেট elements এর মধ্যে শুধু uncommon গুলোকে নিবে । ব্যাপারটা নিচের ছবির মতো:
আর পাইথনে Set Symmetric Difference এর কাজটি করা হয় ( ^ ) অথবা symmetric_difference() function দিয়ে। চলুন একটি উদাহরণ দিয়ে বুঝে নেয়া যাক :
# initialize A and B A = {1, 2, 3, 4, 5} B = {4, 5, 6, 7, 8} # use ^ operator # Output: {1, 2, 3, 6, 7, 8} print(A ^ B) # use symmetric_difference function on A >>> A.symmetric_difference(B) {1, 2, 3, 6, 7, 8} # use symmetric_difference function on B >>> B.symmetric_difference(A) {1, 2, 3, 6, 7, 8}
SET দিয়ে আরো কিছু Operations
set এর মধ্যে কোনো element আছে কিনা তা চেক করার জন্য আমরা in Operator টি ব্যবহার করতে পারি। থাকলে true return করবে আর না থাকলে false রিটার্ন করবে।
# initialize my_set my_set = set("apple") # check if 'a' is present # Output: True print('a' in my_set) # check if 'p' is present # Output: False print('p' not in my_set)
Iterating Through a Set
পাইথনের for loop দিয়ে আপনি Set এর item গুলোকে iterate করতে পারেন ।
>>> for letter in set(“apple”):
… print(letter)
…
a
p
e
l
Set এর কিছু Built-in Function List
Set নিয়ে বিভিন্ন কাজ করার জন্য সাধারণ কিছু function নিচে সেগুলোর বিস্তারিত দেওয়া হলো।
Function | Description |
---|---|
all() | Set এর সব element যখন true, তখন এটি true return করবে। |
any() | Set এর যেকোনো element যখন true, তখন এটি true return করবে। |
len() | Set এর Length return করবে |
max() | Set এর max (বড়) Item টি return করবে। |
min() | Set এর সবচেয়ে min (ছোট) Item টি return করবে। |
sorted() | নতুন একটি sorted Set return করবে। |
sum() | Set এর সব Element এর যোগফল দেখাবে। |
চলুন নিচে সবগুলোর একটা করে উদাহরণ দেখা যাক :
>>> mysets={4,1,9,3,2,6,7,8} >>> len(mysets) 8 >>> max(mysets) 9 >>> min(mysets) 1 >>> sum(mysets) 40 >>> sorted(mysets) [1, 2, 3, 4, 6, 7, 8, 9] >>> any(mysets) True >>> all(mysets) True >>>
2 thoughts on “Sets in Python”
Leave a Reply
You must be logged in to post a comment.
sir, python er upor apnar koyekti free tutorial dekheci. ami python shikhte cai. course fee and course details ta janaben plz plz plz . remote area theke online a course korar kono bebostha ace kina?
2019 Theke suru hobe, Insa Allah