কম্পিউটার

পাইথন সেট:একটি গাইড

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

এখানেই পাইথন সেট অবজেক্ট আসে। একটি সেট হল আইটেমগুলির একটি অবিন্যস্ত সংগ্রহ যাতে শুধুমাত্র অনন্য মান থাকতে পারে।

এই টিউটোরিয়ালটি উদাহরণের রেফারেন্স সহ, পাইথন সেটের মূল বিষয়গুলি এবং আপনি কীভাবে একটি সেটে মান যোগ করা এবং অপসারণের মতো সাধারণ ক্রিয়াকলাপগুলি সম্পাদন করতে পারেন তা নিয়ে আলোচনা করবে।

পাইথন সেট

পাইথন বিল্ট-ইন সেট ডেটা স্ট্রাকচারটি গণিতের সেটের ধারণার মতো।

পাইথন সেটে শূন্য বা তার বেশি উপাদান থাকতে পারে এবং সেটের প্রতিটি উপাদানের জন্য কোনো নির্দিষ্ট ক্রম নেই। একটি সেটের মধ্যে সঞ্চিত প্রতিটি উপাদান অনন্য, তাই কোনও সদৃশ উপস্থিত থাকতে পারে না এবং সেটের প্রতিটি পৃথক মান পরিবর্তন করা যায় না।

যদিও একটি সেটের পৃথক মান পরিবর্তন করা যায় না, তবে সেট নিজেই হতে পারে। এর মানে হল যে আমরা আমাদের সেট থেকে আইটেম যোগ বা মুছে ফেলতে পারি।

সেট স্ট্রাকচারটি দরকারী কারণ এটি বেশ কয়েকটি গাণিতিক ক্রিয়াকলাপের সাথে আসে যা আমরা একটি সেটে সংরক্ষিত ডেটার সাথে কাজ করতে ব্যবহার করতে পারি।

একটি পাইথন সেট তৈরি করুন

পাইথনে, সেটগুলিকে কমা দ্বারা পৃথক করা আইটেমগুলির (বা "উপাদান") তালিকা হিসাবে সংজ্ঞায়িত করা হয়। তারপর তালিকাটি কোঁকড়া ধনুর্বন্ধনী ({}) এর মধ্যে আবদ্ধ করা হয়।

81% অংশগ্রহণকারী বলেছেন যে তারা বুটক্যাম্পে যোগ দেওয়ার পরে তাদের প্রযুক্তিগত কাজের সম্ভাবনা সম্পর্কে আরও আত্মবিশ্বাসী বোধ করেছেন। আজই একটি বুটক্যাম্পের সাথে মিলিত হন৷

গড় বুটক্যাম্প গ্র্যাড একটি বুটক্যাম্প শুরু করা থেকে শুরু করে তাদের প্রথম চাকরি খোঁজা পর্যন্ত ক্যারিয়ারের পরিবর্তনে ছয় মাসেরও কম সময় কাটিয়েছে।

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

ধরুন আমরা একটি সেট তৈরি করতে চাই যা একটি ইংরেজি ক্লাসের জন্য একজন শিক্ষার্থীর হাতে দেওয়া হোমওয়ার্ক অ্যাসাইনমেন্টের একটি তালিকা সংরক্ষণ করে। আমরা নিম্নলিখিত কোড ব্যবহার করে এই সেট তৈরি করতে পারি:

assignments = {"Worksheet #4", "Worksheet #5", "Worksheet #7", "End of Topic Review #2"}
print(assignments)

আমাদের কোড ফিরে আসে:

{'ওয়ার্কশীট #5', 'ওয়ার্কশীট #4', 'ওয়ার্কশীট #7', 'বিষয় পর্যালোচনা #2 এর সমাপ্তি'}

আমাদের কোডে, আমরা assignments নামে একটি সেট সংজ্ঞায়িত করেছি যার চারটি মান রয়েছে। তারপর, আমরা কনসোলে সেট করা অ্যাসাইনমেন্টের বিষয়বস্তু মুদ্রণ করেছি। আপনি দেখতে পাচ্ছেন যে আমাদের মানগুলি এলোমেলো ক্রমে ফিরিয়ে দেওয়া হয়েছে কারণ সেটগুলি তাদের আইটেমগুলিকে কোনও নির্দিষ্ট ক্রমে সংরক্ষণ করে না।

একটি সেট পরিবর্তন করা

আপনি যখন একটি সেট তৈরি করেন, আপনি সেটের আইটেমগুলির মান পরিবর্তন করতে পারবেন না। যাইহোক, আপনি একটি সেট থেকে আইটেম যোগ করতে এবং সরাতে পারেন।

একটি সেটে আইটেম যোগ করুন

পাইথন সেটে একটি উপাদান যোগ করতে, আপনি add() ব্যবহার করতে পারেন পদ্ধতি ধরুন একজন ছাত্র এইমাত্র Worksheet #8 হস্তান্তর করেছে এবং আমরা আমাদের সেট আপডেট করতে চাই যাতে স্টুডেন্টের অ্যাসাইনমেন্ট হস্তান্তর হয় তার ট্র্যাক রাখতে। আমরা এই কোডটি ব্যবহার করে তা করতে পারি:

assignments = {"Worksheet #4", "Worksheet #5", "Worksheet #7", "End of Topic Review #2"}

assignments.add("Worksheet #8")
print(assignments)

আমাদের কোড ফিরে আসে:

{'ওয়ার্কশীট #8', 'ওয়ার্কশীট #4', 'ওয়ার্কশীট #5', 'বিষয় পর্যালোচনা #2', 'ওয়ার্কশীট #7'}

আপনি দেখতে পাচ্ছেন, Worksheet #8 আমাদের সেট যোগ করা হয়েছে.

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

ধরুন একজন ছাত্র #8 এবং #9 উভয় ওয়ার্কশীট দিয়েছে। এই কোড ব্যবহার করে হস্তান্তর করা এই নতুন অ্যাসাইনমেন্টগুলি প্রতিফলিত করতে আমরা আমাদের সেট পরিবর্তন করতে পারি:

assignments = {"Worksheet #4", "Worksheet #5", "Worksheet #7", "End of Topic Review #2"}

assignments.update(["Worksheet #8", "Worksheet #9"])
print(assignments)

আমাদের কোড ফিরে আসে:

{'ওয়ার্কশীট #9', 'বিষয় পর্যালোচনা #2', 'ওয়ার্কশীট #8', 'ওয়ার্কশীট #7', 'ওয়ার্কশীট #4', 'ওয়ার্কশীট #5'}

এখন আমাদের সেটে দুটি নতুন মান রয়েছে:Worksheet #8 এবং Worksheet #9 .

একটি সেট থেকে উপাদানগুলি সরান

একটি সেট থেকে একটি উপাদান সরাতে, আপনি discard() ব্যবহার করতে পারেন অথবা remove() .

discard() ফাংশন একটি সেট থেকে একটি আইটেম সরিয়ে দেয় এবং যদি একটি আইটেম একটি সেটে বিদ্যমান না থাকে তবে কিছুই ফেরত দেয় না। remove() ফাংশন একটি সেট থেকে একটি আইটেম অপসারণ করার চেষ্টা করবে, এবং যদি সেই আইটেমটি বিদ্যমান না থাকে তবে একটি ত্রুটি উত্থাপিত হবে।

ধরুন আমরা Worksheet #9 সরাতে চাই একজন ছাত্রের হোমওয়ার্ক অ্যাসাইনমেন্টের আমাদের রেকর্ড থেকে কারণ তাদের অ্যাসাইনমেন্টটি পুনরায় করতে বলা হয়েছে। আমরা এই কোড ব্যবহার করে তা করতে পারি:

assignments = {'Worksheet #9', 'End of Topic Review #2', 'Worksheet #8', 'Worksheet #7', 'Worksheet #4', 'Worksheet #5'}

assignments.discard("Worksheet #9")
print(assignments)

আমাদের কোড ফিরে আসে:

{'বিষয় পর্যালোচনা #2', 'ওয়ার্কশীট #5', 'ওয়ার্কশীট #4', 'ওয়ার্কশীট #8', 'ওয়ার্কশীট #7'}

আপনি দেখতে পাচ্ছেন যে মান Worksheet #9 আমাদের সেট থেকে সরানো হয়েছে। আমরা discard() ব্যবহার করে এটি সম্পন্ন করেছি পদ্ধতি

একটি সেট সাফ করুন

একটি সেট সাফ করতে, আপনি clear() ব্যবহার করতে পারেন পদ্ধতি ধরুন আমরা একজন শিক্ষার্থীর অ্যাসাইনমেন্টের একটি রেকর্ড মুছে ফেলতে চাই কারণ এটি বছরের শেষ এবং আমাদের আর তথ্য সংরক্ষণ করার দরকার নেই। আমরা এই কোড ব্যবহার করে তা করতে পারি:

assignments = {'Worksheet #9', 'End of Topic Review #2', 'Worksheet #8', 'Worksheet #7', 'Worksheet #4', 'Worksheet #5'}

assignments.clear()
print(assignments)

আমাদের কোড রিটার্ন করে:{}। এটি আমাদের খালি সেট প্রতিফলিত করে।

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

একটি সেটে কতগুলি আইটেম সংরক্ষিত আছে তা জানতে, আপনি len() ব্যবহার করতে পারেন পদ্ধতি

ধরুন আমরা একজন শিক্ষার্থী কতগুলি হোমওয়ার্ক অ্যাসাইনমেন্ট দিয়েছে তা খুঁজে বের করতে চাই৷ আমরা এই কোডটি ব্যবহার করে তা করতে পারি:

assignments = {'Worksheet #9', 'End of Topic Review #2', 'Worksheet #8', 'Worksheet #7', 'Worksheet #4', 'Worksheet #5'}
print(len(assignments))

আমাদের কোড ফিরে আসে:6. আমাদের কোডে, আমরা প্রথমে assignments নামে একটি সেট ঘোষণা করি . তারপর, আমরা len() ব্যবহার করি assignments-এ কতগুলি আইটেম সংরক্ষিত আছে তা খুঁজে বের করার পদ্ধতি সেট

পাইথন সেট অপারেশনস

ডেটা সঞ্চয় করার জন্য একটি সেট ব্যবহার করার সুবিধাগুলির মধ্যে একটি হল সেটগুলি গাণিতিক সেট অপারেশনকে সমর্থন করে। চলুন জেনে নেওয়া যাক কিভাবে তিনটি প্রধান সেট অপারেশন কাজ করে।

এই সেট অপারেশনগুলি পরিবর্তন করে না৷ একটি সেটের বিষয়বস্তু। পরিবর্তে, তারা একটি বিদ্যমান সেটে একটি গণনা সম্পাদন করে।

ইউনিয়ন সেট করুন

union() পদ্ধতি আমাদের দুটি সেট থেকে সমস্ত উপাদানের একটি সেট তৈরি করতে দেয়।

ধরুন আমাদের কাছে একজন ছাত্রের অ্যাসাইনমেন্টের দুটি তালিকা রয়েছে যা আমরা একসাথে একত্রিত করতে চাই। একটি তালিকায় একজন শিক্ষার্থীর হোমওয়ার্কের তথ্য থাকে এবং অন্যটিতে একজন শিক্ষার্থীর সম্পন্ন করা প্রবন্ধের অ্যাসাইনমেন্টের একটি তালিকা থাকে। আমরা এই কোড ব্যবহার করে এই তালিকাগুলি একত্রিত করতে পারি:

assignments = {"Worksheet #4", "Worksheet #5", "Worksheet #7"}
essays = {"Essay #1", "Essay #2"}

homework = assignments.union(essays)
print(homework)

আমাদের কোড ফিরে আসে:

{'ওয়ার্কশীট #7', 'প্রবন্ধ #2', 'ওয়ার্কশিট #4', 'প্রবন্ধ #1', 'ওয়ার্কশিট #5'}

আমাদের কোডে, আমরা union() ব্যবহার করি আমাদের দুটি সেটকে একত্রিত করার পদ্ধতি। আমরা সদ্য মার্জ করা সেটের মান পরিবর্তনশীল homework-এ বরাদ্দ করি . তারপর, আমরা homework এর মান প্রিন্ট করেছি পরিবর্তনশীল

বিকল্পভাবে, আমরা নিম্নলিখিত কোড ব্যবহার করতে পারতাম:

assignments = {"Worksheet #4", "Worksheet #5", "Worksheet #7"}
essays = {"Essay #1", "Essay #2"}

print(assignments | essays)

"|" অপারেটর একটি ইউনিয়ন সেট অপারেশন সঞ্চালিত. আমাদের কোড একটি মার্জ করা সেট প্রদান করে:

{'প্রবন্ধ #2', 'ওয়ার্কশিট #4', 'ওয়ার্কশিট #5', 'প্রবন্ধ #1', 'ওয়ার্কশিট #7'}

ইন্টারসেকশন সেট করুন

intersection() পদ্ধতি আপনাকে দুটি সেটের মধ্যে সাধারণ উপাদানগুলির একটি তালিকা তৈরি করতে দেয়।

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

আমরা যে কোডটি ব্যবহার করব তা এখানে:

essays_handed_in = {"Essay #1", "Essay #2"}
essays_issued = {"Essay #1", "Essay #2", "Essay #3"}

due = essays_handed_in.intersection(essays_issued)
print(due)

আমাদের কোড ফিরে আসে:

{'প্রবন্ধ #1', 'প্রবন্ধ #2'}

এই উদাহরণে, আমরা intersection() ব্যবহার করি essays_handed_in উভয়টিতে বিদ্যমান সমস্ত উপাদান খুঁজে বের করার পদ্ধতি এবং essays_issued সেট আমরা ছেদ অপারেশনের ফলাফল পরিবর্তনশীল due কে বরাদ্দ করি , যা আমরা তারপর কনসোলে প্রিন্ট করি।

উপরন্তু, আমরা & ব্যবহার করতে পারি অপারেটর একটি সেট ছেদ অপারেশন সঞ্চালন. সুতরাং, যদি আমরা আগে থেকে আমাদের দুটি সেটে একটি ছেদ করতে চাই, আমরা এই কোডটি ব্যবহার করতে পারি:

essays_handed_in = {"Essay #1", "Essay #2"}
essays_issued = {"Essay #1", "Essay #2", "Essay #3"}

print(essays_handed_in & essays_issued)

আমাদের কোড ফিরে আসে:

{'প্রবন্ধ #1', 'প্রবন্ধ #2'}

পার্থক্য সেট করুন

difference() পদ্ধতিটি আপনাকে খুঁজে বের করতে দেয় যে কোন উপাদানগুলি একটি সেটে উপস্থিত রয়েছে যা অন্য সেটে উপস্থিত নেই।

ধরুন আমরা একজন শিক্ষার্থীর হাতে দেওয়া সমস্ত রচনার একটি তালিকা তৈরি করতে চেয়েছিলাম এবং যেগুলি এখনও গ্রেড করা হয়নি। আমরা এই কোড ব্যবহার করে তা করতে পারি:

essays_handed_in = {"Essay #1", "Essay #2"}
essays_graded = {"Essay #1"}

final = essays_handed_in.difference(essays_graded)
print(final)

আমাদের কোড ফিরে আসে:

{"প্রবন্ধ #2"}

এই কোডে, আমরা difference() ব্যবহার করেছি essays_handed_in-এর মধ্যে পার্থক্য খুঁজে বের করার পদ্ধতি এবং essays_graded সেট বিকল্পভাবে, আমরা - ব্যবহার করতে পারি অপারেটর, যেমন:

essays_handed_in = {"Essay #1", "Essay #2"}
essays_graded = {"Essay #1"}
print(essays_handed_in - essays_graded)

আমাদের কোড ফিরে আসে:

{"প্রবন্ধ #2"}

একই ফলাফল আমাদের কোড ফেরত দেওয়া হয়. কিন্তু পরিবর্তে difference() ব্যবহার করুন সেট পদ্ধতি, আমরা - ব্যবহার করেছি অপারেটর, যা দুটি সেটের মধ্যে পার্থক্য খুঁজে পেতে একটি পরীক্ষা করে।

উপসংহার

পাইথন সেট ডেটা স্ট্রাকচার আপনাকে আইটেমগুলির অবিন্যস্ত সংগ্রহ সংরক্ষণ করতে দেয়।

একটি সেটের প্রতিটি আইটেম অবশ্যই অনন্য হতে হবে, তাই কোনও সদৃশ উপস্থিত থাকতে পারে না এবং সেটে যোগ করার পরে একটি সেটের বিষয়বস্তু পরিবর্তন করা যায় না।

এই টিউটোরিয়ালটি উদাহরণের রেফারেন্স সহ, পাইথন সেটের মূল বিষয় এবং সেট দ্বারা অফার করা প্রধান ক্রিয়াকলাপ নিয়ে আলোচনা করা হয়েছে।

আপনি সেটগুলির সাথে কী করতে পারেন তা আমরা কেবলমাত্র স্ক্র্যাচ করেছি, যদিও—আপনার জন্য এখনও আরও অনেক কিছু অন্বেষণ করার আছে—কিন্তু সেটগুলির সাথে কার্যকরভাবে কাজ করার জন্য আপনার যে প্রধান দক্ষতাগুলি জানা দরকার তা আমরা কভার করেছি৷ এখন আপনি পাইথন set() ব্যবহার শুরু করতে প্রস্তুত একটি প্রো মত পদ্ধতি!


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


  1. পাইথনে একটি সেটের উপর পুনরাবৃত্তি করুন

  2. পাইথন সেটের ধরন

  3. পাইথন সেট অপারেশন।

  4. পাইথন সেট