ডিকশনারীগুলি হল অ-ক্রমহীন ডেটা স্ট্রাকচার। তারা ডেটা সঞ্চয় করার জন্য একটি ম্যাপিং কাঠামো ব্যবহার করে। অভিধানগুলি মানগুলির কীগুলিকে ম্যাপ করে, এমন জোড়া তৈরি করে যা সম্পর্কিত ডেটা ধারণ করে৷
পাইথন 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
পরামিতি
এখন আপনি পাইথন প্রো!
এর মত মান অনুযায়ী অভিধান সাজানো শুরু করতে প্রস্তুত