কম্পিউটার টিউটোরিয়াল

পাইথনে তালিকা থেকে ডুপ্লিকেট সরানোর পদ্ধতি

আপনি পাইথন তালিকা থেকে ডুপ্লিকেট সরাতে dict.fromkeys() ব্যবহার করতে পারেন, যা একটি ডিকশনারি জেনারেট করে যেটি ডুপ্লিকেট মান সরিয়ে দেয়। আপনি একটি তালিকা কে সেটে রূপান্তর করতে পারেন। আপনাকে ডিকশনারি বা সেটকে আবার তালিকায় রূপান্তর করতে হবে ডুপ্লিকেট-মুক্ত তালিকা देखने के জন্য।


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

এই টিউটোরিয়ালে dict.fromkeys() মেথড ব্যবহার এবং একটি তালিকা কে সেটে রূপান্তর করা আলোচনা করা হবে। আমরা এই দুটি মেথডের আউটপুটকে আবার তালিকায় রূপান্তর করার পদ্ধতি আলোচনা করব যাতে আপনি আপনার ডেটা তালিকা হিসেবে ব্যাখ্যা করতে পারেন।

পাইথন তালিকা থেকে ডুপ্লিকেট সরানো

আপনি একটি পাইথন সেট বা dict.fromkeys() মেথড ব্যবহার করে ডুপ্লিকেট সরাতে পারেন।

dict.fromkeys() মেথড একটি তালিকাকে ডিকশনারিতে রূপান্তর করে। ডিকশনারি ডুপ্লিকেট মান ধারণ করতে পারে না, তাই dict.fromkeys() শুধু অনন্য (unique) মান সহ একটি ডিকশনারি ফেরত দেয়।

সেটগুলোও, ডিকশনারির মতো, ডুপ্লিকেট মান ধারণ করতে পারে না। যদি আমরা একটি তালিকাকে সেটে রূপান্তর করি, তবে সব ডুপ্লিকেট সরিয়ে যাবে।

পাইথন তালিকা থেকে ডুপ্লিকেট সরানো: dict.fromkeys()

পাইথন ডিকশনারি ডেটা একটি key/value স্ট্রাকচারে সংরক্ষণ করে। ডিকশনারি কীগুলোকে মানের সাথে ম্যাপ করে এবং একটি পেয়ার তৈরি করে যা পাইথনে ডেটা সংরক্ষণ করে।

পাইথনে ডিকশনারি ডুপ্লিকেট কী ধারণ করতে পারে না। যদি আমরা আমাদের তালিকাকে ডিকশনারিতে রূপান্তর করি, তবে এটি যেকোনো ডুপ্লিকেট মান সরিয়ে দেবে। সেটাই কারণ fromkeys() মেথডটি কাজে লাগে।

dict.fromkeys() উদাহরণ

fromkeys() একটি বিল্ট-ইন ফাংশন যা আপনার নির্দিষ্ট কীগুলো থেকে একটি ডিকশনারি জেনারেট করে। যেহেতু ডিকশনারি ডুপ্লিকেট কী ধারণ করতে পারে না, তাই ফাংশনটি আমাদের তালিকা থেকে যেকোনো ডুপ্লিকেট মান সরিয়ে দেবে। তারপর, আমরা আমাদের ডিকশনারিকে আবার একটি তালিকায় রূপান্তর করতে পারি।

fromkeys() মেথডের সিনট্যাক্স নিম্নরূপ:

dictionary_name.fromkeys(keys, value)

fromkeys দুটি প্যারামিটার নেয়: keys এবং value। keys প্যারামিটার হলো ইটেরেবল, যা আপনি যে নতুন ডিকশনারি তৈরি করতে চান তার কীগুলো নির্দিষ্ট করে। value প্যারামিটারটি ঐচ্ছিক এবং সব কী-এর জন্য মান ধারণ করে। এই উদাহরণে আমাদের এই প্যারামিটারটি দরকার নেই, তাই আমরা এটিকে উপেক্ষা করব।

মান লেন আমরা একটি রান্নার যারা পুরানো এবং নতুন পিজা মেনু একসাথে একটি বড় মেনুতে মিলাচ্ছি। নতুন মেনুতে számos নতুন পিজা রয়েছে যেগুলো আমরা মাসها ধরে ডেভেলপ করছি। কিন্তু, আমরা পুরানো মেনুর পিজাগুলোও অফার করতে চাই। আমরা মেনুতে ডুপ্লিকেট চাই না, কারণ সেটি কাস্টমারদের বিভ্রান্ত করবে।

নতুন মেনুতে থাকা যেকোনো ডুপ্লিকেট সরাতে, আমরা নিচের কোড ব্যবহার করতে পারি:

new_menu = ['Hawaiian', 'Margherita', 'Mushroom', 'Prosciutto', 'Meat Feast', 'Hawaiian', 'Bacon', 'Black Olive Special', 'Sausage', 'Sausage']
final_new_menu = list(dict.fromkeys(new_menu))
print(final_new_menu)

আমাদের কোড ডুপ্লিকেট এলিমেন্টগুলো সরিয়ে দিয়ে ফেরত দেয়:

['Hawaiian', 'Margherita', 'Mushroom', 'Prosciutto', 'Meat Feast', 'Bacon', 'Black Olive Special', 'Sausage']

প্রথম লাইনে, আমরা new_menu নামে একটি পাইথন ভেরিয়েবল ঘোষণা করি যা নতুন মেনুর সকল পিজা সংরক্ষণ করে। লক্ষ্য করুন এই তালিকায় ডুপ্লিকেট মান রয়েছে — Sausage এবং Hawaiian দুবার করে পাইথন তালিকায় আসে।

আমরা dict.fromkeys() মেথড ব্যবহার করি আমাদের new_menu ভেরিয়েবল থেকে একটি ডিকশনারি তৈরি করতে। পরবর্তীতে, আমরা list() ব্যবহার করি আমাদের ডেটাকে ডিকশনারি থেকে পাইথন অ্যারে বা তালিকায় রূপান্তর করতে। কোডের শেষ লাইনে, আমরা আমাদের রিভাইজড তালিকা প্রিন্ট করি।

আপনি দেখতে পাচ্ছেন, আমাদের প্রোগ্রাম আমাদের ডেটা থেকে ডুপ্লিকেট মানগুলো সরিয়ে দিয়েছে, এবং Sausage এবং Hawaiian আমাদের নতুন তালিকায় একবার করে আসে।

তালিকা থেকে ডুপ্লিকেট সরানো পাইথন: সেট (Sets)

পাইথন সেট অবজেক্ট একটি ডেটা স্ট্রাকচার যা অনর্ডার্ড (unordered) এবং আনইন্ডেক্সড (unindexed)। সেটগুলো পাইথনে অনন্য আইটেমের সংকলন সংরক্ষণ করে। তালিকার বিপরীতে, সেটগুলো ডুপ্লিকেট মান সংরক্ষণ করতে পারে না।

তাই, যেহেতু সেটগুলো ডুপ্লিকেট আইটেম সংরক্ষণ করতে পারে না, আমরা আমাদের তালিকাকে সেটে রূপান্তর করি ডুপ্লিকেটগুলো সরাতে। পাইথনে, সেটগুলো কমা-সেপারেটেড আইটেমের একটি তালিকা যা কার্লি ব্র্যাকেটের ভিতরে এনক্লোজড থাকে। পাইথনে একটি সেটের উদাহরণ যা পিজার তালিকা সংরক্ষণ করে:

pizzas = ('Margherita', 'Hawaiian', 'Mushroom', 'Meat Feast')

সেট ব্যবহার করে ডুপ্লিকেট সরানোর উদাহরণ

আমরা উপরের উদাহরণটি নিই সেট কীভাবে ডুপ্লিকেট মান সরাতে পারে তা ইলাস্ট্রেট করতে।

মান লেন আমরা একটি পিজা রান্নার যারা আমাদের পুরানো এবং নতুন মেনু দুটোই একসাথে করতে চান। কিন্তু এই মেনুগুলোর মধ্যে ডুপ্লিকেট থাকতে পারে, যেগুলো আমরা ফাইনাল মেনু তৈরির আগে সরাতে চাই। সেট পদ্ধতি ব্যবহার করে এই ডুপ্লিকেটগুলো সরাতে, আমরা নিচের কোড ব্যবহার করতে পারি:

new_menu = ['Hawaiian', 'Margherita', 'Mushroom', 'Prosciutto', 'Meat Feast', 'Hawaiian', 'Bacon', 'Black Olive Special', 'Sausage', 'Sausage']
final_new_menu = list(set(new_menu))
print(final_new_menu)

ডুপ্লিকেট মান সরানোর পর আমাদের তালিকা:

['Mushroom', 'Black Olive Special', 'Meat Feast', 'Bacon', 'Margherita', 'Sausage', 'Prosciutto', 'Hawaiian']

প্রোগ্রামের শুরুতে, আমরা new_menu নামে একটি তালিকা ঘোষণা করি যা নতুন মেনুর সকল পিজা সংরক্ষণ করে।

তারপর, আমরা final_new_menu নামে একটি ভেরিয়েবল ঘোষণা করি যা আমাদের রিভাইজড মেনু সংরক্ষণ করে। এই ভেরিয়েবল new_menu ভেরিয়েবলকে set() ব্যবহার করে সেটে রূপান্তর করে, তারপর list() ব্যবহার করে আবার তালিকায় রূপান্তর করে। এই প্রক্রিয়া আমাদের new_menu ভেরিয়েবলের সকল ডুপ্লিকেট মান সরিয়ে দেয়।

শেষে, আমাদের প্রোগ্রাম নতুন মেনু কনসোলে প্রিন্ট করে। মূল তালিকা অবজেক্ট থেকে সকল অনন্য এলিমেন্ট প্রদর্শিত হয়। এখন আমাদের কাছে একটি অনন্য তালিকা আছে।



উপসংহার

তালিকা থেকে ডুপ্লিকেট আইটেম সরানো পাইথনে একটি সাধারণ অপারেশন। তালিকা থেকে ডুপ্লিকেট সরানোর জন্য কোনো অফিসিয়াল মেথড নেই। সবচেয়ে সাধারণ পদ্ধতিগুলো হলো ডিকশনারি fromkeys() ফাংশন ব্যবহার করা বা আপনার ডেটাকে সেটে রূপান্তর করা।

এই গাইডে, আমরা পাইথনে তালিকা থেকে ডুপ্লিকেট সরাতে ডিকশনারি fromkeys() ফাংশন এবং সেট ব্যবহার করার পদ্ধতি আলোচনা করেছি।

পাইথন প্রোগ্রামিং সম্পর্কে আরও জানতে, আমাদের How to Learn Python গাইড পড়ুন।

  1. Android-এ সর্টেড লিংকড লিস্ট থেকে ডুপ্লিকেট সরানোর পদ্ধতি

  2. পাইথনে লেবেল (Label) থেকে টেক্সট রিমুভ করা

  3. পাইথন ফাংশন থেকে লিস্ট রিটার্ন করার পদ্ধতি

  4. জাভা সহজে: ArrayList থেকে ডুপ্লিকেট আইটেম রিমুভ করুন