$lang['tuto'] = "টিউটোরিয়াল"; ?> মান অনুযায়ী একটি

মান অনুযায়ী একটি পাইথন অভিধান কীভাবে সাজানো যায়

মান অনুযায়ী একটি পাইথন অভিধান কীভাবে সাজানো যায়
মান অনুযায়ী একটি পাইথন অভিধান কীভাবে সাজানো যায়

পাইথনে অভিধানের মান বাছাই করা: একটি দ্রুত নির্দেশিকা

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

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

আদেশ বর্ণনা
sorted() একটি বিল্ট-ইন ফাংশন যা একটি পুনরাবৃত্তিযোগ্য আইটেম থেকে একটি নতুন সাজানো তালিকা প্রদান করে।
dict() পাইথনে একটি অভিধান তৈরি করে।
key=lambda item: item[1] ল্যাম্বডা ফাংশনটি নির্দিষ্ট করতে ব্যবহৃত হয় যে সাজানো অভিধানের মানগুলির উপর ভিত্তি করে হওয়া উচিত।
reverse=True সাজানো() ফাংশনে প্যারামিটার আইটেমগুলিকে নিচের ক্রমে সাজানোর জন্য।
@app.route() ফ্লাস্ক ডেকোরেটর একটি ইউআরএলে একটি ফাংশন আবদ্ধ করতে ব্যবহৃত হয়।
jsonify() পাইথন অবজেক্টকে JSON ফরম্যাটে রূপান্তর করতে ফ্লাস্ক ফাংশন।

মান অনুসারে একটি অভিধান বাছাই করার জন্য স্ক্রিপ্টগুলি বোঝা

প্রথম স্ক্রিপ্ট দেখায় কিভাবে পাইথনের অন্তর্নির্মিত ফাংশন ব্যবহার করে একটি অভিধানকে তার মান অনুসারে সাজাতে হয়। দ্য sorted() ফাংশন অভিধানের আইটেম বাছাই করতে ব্যবহৃত হয়। গতানুগতিক, sorted() কীগুলির উপর ভিত্তি করে আইটেমগুলিকে আরোহী ক্রমে সাজায়। যাইহোক, ব্যবহার করে একটি কাস্টম কী ফাংশন প্রদান করে key=lambda item: item[1], আমরা পাইথনকে ডিকশনারির মান অনুযায়ী সাজানোর নির্দেশ দিই। দ্য lambda ফাংশন প্রতিটি অভিধান আইটেম থেকে মান নিষ্কাশন করে, অনুমতি দেয় sorted() সেই অনুযায়ী অভিধান অর্ডার করার ফাংশন। একটি অভিধানে ফলাফল সংরক্ষণ করতে, dict() ফাংশন ব্যবহার করা হয়। উপরন্তু, ডিকশনারি সাজানোর জন্য নিচের ক্রমে, reverse=True প্যারামিটার পাস করা হয় sorted() ফাংশন

দ্বিতীয় স্ক্রিপ্টটি সাজানোর যুক্তির উপর ভিত্তি করে তৈরি করে এবং এটিকে একটি ফ্লাস্ক ওয়েব অ্যাপ্লিকেশনে সংহত করে। ফ্লাস্ক হল পাইথনের জন্য একটি হালকা ওয়েব ফ্রেমওয়ার্ক যা আপনাকে সহজেই ওয়েব অ্যাপ্লিকেশন তৈরি করতে দেয়। এই স্ক্রিপ্টে, দ @app.route() ডেকোরেটর বাঁধাই sort_dict() '/sort-dict' URL রুটে ফাংশন। যখন এই রুটটি অ্যাক্সেস করা হয়, ফাংশনটি প্রথম স্ক্রিপ্টের মতো একই যুক্তি ব্যবহার করে ক্রমবর্ধমান এবং অবরোহ উভয় ক্রমে অভিধানকে সাজায়। দ্য jsonify() ফ্লাস্ক থেকে ফাংশন তারপর সাজানো অভিধানগুলিকে JSON ফর্ম্যাটে রূপান্তর করতে ব্যবহৃত হয়, যা প্রতিক্রিয়া হিসাবে ফিরে আসে। এই ওয়েব অ্যাপ্লিকেশনটি ব্যবহারকারীদের একটি ওয়েব ব্রাউজারের মাধ্যমে সাজানো অভিধানগুলি অ্যাক্সেস করতে দেয়, একটি ওয়েব প্রসঙ্গে অভিধানের মানগুলিকে সাজানোর একটি ব্যবহারিক ব্যবহারের ক্ষেত্রে প্রদর্শন করে৷

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

অভিধানের মান বাছাই করার জন্য পাইথন স্ক্রিপ্ট

# Sample dictionary
data = {'apple': 3, 'banana': 1, 'cherry': 2}

# Sort dictionary by values in ascending order
sorted_data_asc = dict(sorted(data.items(), key=lambda item: item[1]))
print("Ascending order:", sorted_data_asc)

# Sort dictionary by values in descending order
sorted_data_desc = dict(sorted(data.items(), key=lambda item: item[1], reverse=True))
print("Descending order:", sorted_data_desc)

একটি ওয়েব অ্যাপ্লিকেশনে বাছাই বাস্তবায়ন

অভিধানের মান বাছাই করার জন্য ফ্লাস্ক অ্যাপ্লিকেশন

from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/sort-dict')
def sort_dict():
    data = {'apple': 3, 'banana': 1, 'cherry': 2}
    sorted_data_asc = dict(sorted(data.items(), key=lambda item: item[1]))
    sorted_data_desc = dict(sorted(data.items(), key=lambda item: item[1], reverse=True))
    return jsonify(ascending=sorted_data_asc, descending=sorted_data_desc)

if __name__ == '__main__':
    app.run(debug=True)

মান অনুযায়ী অভিধান বাছাই করার জন্য উন্নত কৌশল

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

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

মান অনুসারে অভিধান বাছাই সম্পর্কে সাধারণ প্রশ্ন এবং উত্তর

  1. কিভাবে আমি ক্রমবর্ধমান মান দ্বারা একটি অভিধান বাছাই করব?
  2. ব্যবহার sorted() একটি ল্যাম্বডা ফাংশন সহ ফাংশন: sorted(data.items(), key=lambda item: item[1]).
  3. আমি কিভাবে একটি অভিধানকে মান অনুসারে সাজাতে পারি?
  4. যুক্ত করুন reverse=True প্যারামিটার থেকে sorted() ফাংশন: sorted(data.items(), key=lambda item: item[1], reverse=True).
  5. আমি কি ল্যাম্বডা ফাংশন ব্যবহার না করে মান অনুসারে একটি অভিধান বাছাই করতে পারি?
  6. হ্যাঁ, ব্যবহার করুন itemgetter() থেকে ফাংশন operator মডিউল sorted(data.items(), key=itemgetter(1)).
  7. আমার অভিধান মান সংখ্যাসূচক না হলে কি হবে?
  8. একই পদ্ধতি প্রযোজ্য; তুলনামূলক ক্রিয়াকলাপগুলিকে সমর্থন করে এমন যে কোনও ধরণের মান অনুসারে আপনি সাজাতে পারেন।
  9. বাছাই করার পরে আমি কীভাবে উপাদানগুলির ক্রম বজায় রাখব?
  10. একটি ব্যবহার করুন OrderedDict থেকে collections শৃঙ্খলা বজায় রাখার জন্য মডিউল: OrderedDict(sorted(data.items(), key=lambda item: item[1])).
  11. মান অনুযায়ী একটি অভিধান বাছাই দক্ষ?
  12. মান অনুসারে অভিধান বাছাই করার সময় O(n log n) এর জটিলতা রয়েছে, যা বেশিরভাগ ব্যবহারের ক্ষেত্রে কার্যকর।
  13. আমি কি তার মান অনুযায়ী একটি অভিধান বাছাই করতে পারি?
  14. না, Python-এর অভিধানগুলি Python 3.7-এর আগে অন্তর্নিহিতভাবে বিন্যাসিত এবং ইন-প্লেস বাছাই সমর্থন করে না। আপনাকে একটি নতুন সাজানো অভিধান তৈরি করতে হবে।
  15. কিভাবে আমি আরও দক্ষতার সাথে মান দ্বারা একটি বড় অভিধান বাছাই করতে পারি?
  16. ব্যবহার বিবেচনা করুন itemgetter() ভাল পঠনযোগ্যতা এবং কর্মক্ষমতা জন্য ফাংশন, বা বড়-স্কেল বাছাই জন্য বিশেষ ডেটা স্ট্রাকচার ব্যবহার করুন।
  17. আমি কি একাধিক মানদণ্ড দ্বারা একটি অভিধান বাছাই করতে পারি?
  18. হ্যাঁ, আপনি একটি টিপল পাস করতে পারেন key মধ্যে পরামিতি sorted() একাধিক মানদণ্ড দ্বারা সাজানোর ফাংশন: sorted(data.items(), key=lambda item: (item[1], item[0])).

নির্দেশিকা মোড়ানো:

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