কম্পিউটার

পাইথনে মান অনুসারে একটি অভিধান সাজান

ডিকশনারীগুলি হল অ-ক্রমহীন ডেটা স্ট্রাকচার। তারা ডেটা সঞ্চয় করার জন্য একটি ম্যাপিং কাঠামো ব্যবহার করে। অভিধানগুলি মানগুলির কীগুলিকে ম্যাপ করে, এমন জোড়া তৈরি করে যা সম্পর্কিত ডেটা ধারণ করে৷

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

পাইথন সাজানো() রিফ্রেশার

পাইথনের অন্তর্নির্মিত sorted() ফাংশনটি পুনরাবৃত্তিযোগ্য বস্তুগুলি যেমন তালিকা, টিপলস এবং অভিধানগুলি সাজানোর জন্য ব্যবহার করা যেতে পারে। sorted() ফাংশন নির্দিষ্ট পুনরাবৃত্তিযোগ্য বস্তুর আইটেমগুলিকে সাজায় এবং নতুন সাজানো মান সহ একটি নতুন বস্তু তৈরি করে।

এখানে sorted()-এর সিনট্যাক্স রয়েছে পদ্ধতি:

sorted(object, key, reverse)

পদ্ধতিটি তিনটি প্যারামিটারে লাগে:

  • অবজেক্ট :পুনরাবৃত্তিযোগ্য বস্তু যা আপনি সাজাতে চান (প্রয়োজনীয়)
  • কী :ফাংশন যা আপনাকে কাস্টম সাজানোর অপারেশন করতে দেয় (ঐচ্ছিক)
  • বিপরীত :অবজেক্টটিকে অবরোহ ক্রমে সাজানো হবে কিনা তা নির্দিষ্ট করে (ঐচ্ছিক)

আপনি দেখতে পাচ্ছেন, object একমাত্র প্রয়োজনীয় পরামিতি। আপনি যদি ঐচ্ছিক key ব্যবহার না করার সিদ্ধান্ত নেন এবং reverse পরামিতি, পাইথন স্বয়ংক্রিয়ভাবে বস্তুটিকে আরোহী ক্রমে সাজাতে হবে।

দ্রষ্টব্য:ক্যারিয়ার কর্মা sort()-এ একটি সম্পূর্ণ নির্দেশিকা লিখেছেন এবং sorted() পাইথনে পদ্ধতি। আপনি যদি এই পদ্ধতি এবং key সম্পর্কে আরও জানতে চান প্যারামিটার, আমাদের Python sort() টিউটোরিয়াল দেখুন।

কিভাবে sorted() তা ব্যাখ্যা করার জন্য চলুন একটি দ্রুত উদাহরণের মাধ্যমে চলুন পদ্ধতি কাজ করে।

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

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

বলুন যে আমরা একটি কফি শপ পরিচালনা করছি এবং আমরা আমাদের Coffee Club এর একটি বর্ণানুক্রমিক তালিকা পুনরুদ্ধার করতে চাই (আনুগত্য) গ্রাহকদের। আমরা ইতিমধ্যে গ্রাহকদের একটি তালিকা আছে, কিন্তু এটি সাইন আপ তারিখ দ্বারা আদেশ করা হয়. আমরা আমাদের তালিকা সাজাতে নিম্নলিখিত কোড ব্যবহার করতে পারি:

customers = ['Kaley Fernandez', 'Darius Rowland', 'Isaac Borthwick',  'Alexandria Kidd']

sorted_customers = sorted(customers)

print(sorted_customers)

আমাদের কোড customers সাজায় অ্যারে এবং নিম্নলিখিতগুলি প্রদান করে:

['Alexandria Kidd', 'Darius Rowland', 'Isaac Borthwick', 'Kaley Fernandez']

আমাদের কোডের প্রথম লাইনে, আমরা একটি তালিকা ঘোষণা করি যা আমাদের গ্রাহকদের নাম সংরক্ষণ করে; এই তালিকা বলা হয়:গ্রাহকদের. তারপর, আমরা sorted() ব্যবহার করি গ্রাহকের নামের তালিকাকে আরোহী ক্রমে সাজানোর পদ্ধতি; এই নতুন তালিকাটিকে বলা হয়:sorted_customers . অবশেষে, আমরা print() ব্যবহার করে কনসোলে নতুন সাজানো তালিকা প্রিন্ট আউট করি ফাংশন

মান অনুসারে একটি অভিধান সাজান

ধরা যাক যে আপনার একটি অভিধান আছে এবং আপনি এটিকে কী-মান জোড়া দিয়ে সাজাতে চান। আপনি দুটি ফাংশন একসাথে ব্যবহার করে এটি করতে পারেন:items() এবং sorted() .

items() ফাংশন আপনাকে অভিধানে আইটেমগুলি পুনরুদ্ধার করতে দেয়। আমরা এই ফাংশনটি sorted() এর সাথে একত্রে ব্যবহার করতে পারি ফাংশন এবং একটি কাস্টম key মান অনুযায়ী অভিধান সাজানোর পরামিতি। নিম্নলিখিত দুটি উদাহরণ বিবেচনা করুন।

উদাহরণ 1:নিচের ক্রমে সাজান

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

এখানে একটি প্রোগ্রাম যা আমরা আমাদের অভিধানের বিষয়বস্তু মান অনুসারে সাজাতে ব্যবহার করতে পারি:

orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

sort_orders = sorted(orders.items(), key=lambda x: x[1], reverse=True)

for i in sort_orders:
	print(i[0], i[1])

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

espresso 72
latte 56
cappuccino 54
americano 48
cortado 41

আমাদের কোডে অনেক কিছু চলছে, তাই আসুন এটি ভেঙে ফেলি।

আমাদের কোডের শুরুতে, আমরা orders নামে একটি অভিধান সংজ্ঞায়িত করি যা কফির নাম কী হিসাবে সংরক্ষণ করে এবং সংখ্যাটি মান হিসাবে বিক্রি হয় .

তারপর, আমরা sorted() ব্যবহার করি orders সাজানোর পদ্ধতি মান অনুযায়ী অভিধান। আমরা কিভাবে sorted() ব্যবহার করেছি তার একটি ব্রেকডাউন এখানে রয়েছে পদ্ধতি:

প্যারামিটার পাঠ্য বিবরণ
অবজেক্ট orders.items() আমাদের "অর্ডার" অভিধানে সমস্ত মান বোঝায়। যদি আমরা শুধুমাত্র "অর্ডার" ব্যবহার করি, তাহলে আমাদের আইটেমের স্বতন্ত্র মান পেতে তার সূচক অবস্থান উল্লেখ করতে হবে। যেহেতু আমরা যদি orders.items() ব্যবহার করি তবে একটি তালিকার আইটেমগুলির সাথে একটি পুনরাবৃত্তিযোগ্য তালিকা তৈরি করা হয়৷
কী key=lambda x:x[1] একটি বাছাই প্রক্রিয়া যা আমাদের অভিধানকে মান অনুসারে সাজাতে দেয়। এটি একটি Lambda ফাংশনের একটি উদাহরণ, যা একটি নাম ছাড়াই একটি ফাংশন৷
বিপরীত বিপরীত=True উল্লেখ করে যে আমরা আমাদের ডেটাকে নিরোচিত ক্রমে সাজাতে চাই।

অবশেষে, আমরা একটি for তৈরি করি লুপ যা আমাদের sort_order-এ তৈরি প্রতিটি আইটেমের মধ্য দিয়ে লুপ করে পদ্ধতি এবং এর মূল নাম এবং এর মান উভয়ই প্রিন্ট করে, আমরা sort_order-এ যে ক্রমে উল্লেখ করেছি সেই ক্রমে সাজানো। ফাংশন।

উদাহরণ 2:আরোহী ক্রমে সাজান

একইভাবে, যদি আমরা আমাদের কফি শপে বিক্রি হওয়া সর্বনিম্ন জনপ্রিয় পানীয়টি খুঁজে বের করতে চাই, আমরা উপরের মতো একই কোড ব্যবহার করতে পারি কিন্তু reverse=True ছাড়া প্যারামিটার এখানে এর জন্য কোডের একটি উদাহরণ দেওয়া হল:

orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

sort_orders = sorted(orders.items(), key=lambda x: x[1])

for i in sort_orders:
	print(i[0], i[1])

যখন আমরা আমাদের কোড চালাই, তখন নিম্নলিখিত মানগুলি ফিরে আসে:

cortado 41
americano 48
cappuccino 54
latte 56
espresso 72

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

তালিকা বোঝা

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

তালিকার বোধগম্যতা ব্যবহার করে অর্ডার করা প্রতিটি কফির সংখ্যা অনুসারে আমাদের কফি অর্ডারগুলিকে ক্রমবর্ধমান ক্রমে সাজাতে আমরা যে কোডটি ব্যবহার করব তা এখানে রয়েছে:

orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

[print(key, value) for (key, value) in sorted(orders.items(), key=lambda x: x[1])]

যখন আমরা আমাদের কোড চালাই, নিম্নলিখিত প্রতিক্রিয়াটি ফিরে আসে:

cortado 41
americano 48
cappuccino 54
latte 56
espresso 72

আমাদের কোডের ফলাফল আমাদের উপরের উদাহরণের মতই ছিল যেখানে আমরা orders এর বিষয়বস্তু সাজিয়েছি আরোহী ক্রমে তালিকা. কিন্তু একটি sort_orders সংজ্ঞায়িত করার পরিবর্তে পরিবর্তনশীল এবং একটি পৃথক for তৈরি করা সাজানো তালিকার মাধ্যমে পুনরাবৃত্তি করতে লুপ, আমরা তালিকা বোঝার কৌশল ব্যবহার করে একটি তালিকা তৈরি করেছি।

আমরা উপরে যে তালিকা বোধগম্যতা তৈরি করেছি তা আমাদের তালিকার প্রতিটি আইটেমের মাধ্যমে ক্রমবর্ধমান ক্রমে সাজায়, তারপর কনসোলে প্রতিটি অভিধান আইটেমের কী এবং মান প্রিন্ট করে।

উপসংহার

আপনি যখন পাইথনে অভিধান নিয়ে কাজ করছেন, তখন মান অনুসারে অভিধান বাছাই করা একটি সাধারণ কাজ। sorted() পদ্ধতি আপনাকে আপনার প্রয়োজনের উপর ভিত্তি করে ডেটার একটি সেট সাজানোর অনুমতি দেয়।

এই টিউটোরিয়ালটি আলোচনা করেছে, উদাহরণ প্রদান করে, কিভাবে sorted() ব্যবহার করতে হয় কিভাবে key ব্যবহার করতে হয় তা সহ পাইথনে মান অনুসারে অভিধান সাজানোর পদ্ধতি এবং reverse পরামিতি

এখন আপনি পাইথন প্রো!

এর মত মান অনুযায়ী অভিধান সাজানো শুরু করতে প্রস্তুত
  1. পাইথনে মার্জ সর্ট ব্যাখ্যা কর

  2. পাইথন প্রোগ্রামে সন্নিবেশ বাছাই

  3. সন্নিবেশ সাজানোর জন্য পাইথন প্রোগ্রাম

  4. কী দ্বারা পাইথনে একটি অভিধান কীভাবে সাজানো যায়?