কম্পিউটার

কিভাবে পাইথনে সবচেয়ে বড় বা সবচেয়ে ছোট আইটেম খুঁজে বের করবেন?


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

পদ্ধতি - 1:একটি তালিকায় স্লাইস পদ্ধতি

আপনি যদি শুধুমাত্র সবচেয়ে ছোট বা সবচেয়ে বড় আইটেমটি খুঁজে বের করার চেষ্টা করেন যেমন N =1, তাহলে min() এবং max() ব্যবহার করা আরও দ্রুত।

আসুন কিছু এলোমেলো পূর্ণসংখ্যা তৈরি করে শুরু করি।

এলোমেলো আমদানি করুন# integersrandom_list =random.sample(range(1,10),9)random_list এর একটি এলোমেলো তালিকা তৈরি করুন

আউটপুট

[2, 4, 5, 1, 7, 9, 6, 8, 3] 

সবচেয়ে ছোট এবং বড় আইটেম (N=1) খোঁজা

# ক্ষুদ্রতম সংখ্যা খুঁজুন (N=1)min(random_list)

আউটপুট

1
# বৃহত্তম সংখ্যা খুঁজুন (N=1)max(random_list)

আউটপুট

9

3টি ছোট এবং বড় আইটেম খোঁজা (N=3)

একইভাবে, যদি N সংগ্রহের নিজেই আকারের প্রায় একই আকারের হয়, তবে এটি সাধারণত প্রথমে বাছাই করা এবং N এর একটি স্লাইস নেওয়া দ্রুত হয়।

# একটি স্লাইস অ্যাপ্রোচ(N=3) বাছাই করা(এলোমেলো_তালিকা) ব্যবহার করে nsmallest পেতে দেয়[:3]

আউটপুট

[1, 2, 3] 
# একটি স্লাইস অ্যাপ্রোচ(N=3)সর্টেড(এলোমেলো_তালিকা) ব্যবহার করে nlarest পেতে দিন[-3:]

আউটপুট

[7, 8, 9] 

পদ্ধতি - 2:একটি তালিকায় heapq পদ্ধতি

heapq মডিউলের দুটি ফাংশন রয়েছে- nlargest() এবং nsmallest() যেগুলি nsmallest বা nlargest আইটেমগুলি খুঁজে পেতে ব্যবহার করা যেতে পারে৷

ইমপোর্ট heapqimport randomrandom_list =random.sample(range(1,10),9)# nssmallest আইটেম (N=3)heapq.nsmallest(3,random_list)

আউটপুট

[1, 2, 3] 
#টি সবচেয়ে বড় আইটেম (N=3)heapq.nlargest(3,random_list)

আউটপুট

[9, 8, 7] 

আপনার যদি একটু বেশি জটিল ডেটা থাকে, তাহলে heapq ফাংশনে একটি কী প্যারামিটার থাকে যা ব্যবহার করা যেতে পারে।

 heapqgrandslams =[{'name':'Roger Federer','titles':20},{'name:'Rafel Nadal','titles':19},{'name':'Novak Jokovic', 'titles':17},{'name':'Andy Murray','titles':3}, # কম খেতাব সহ খেলোয়াড় (N=3)less =heapq.nsmallest(3,grandslams,key =lambdas:s ['titles'])কম

আউটপুট

[{'নাম':'অ্যান্ডি মারে', 'টাইটেল':3},{'নাম':'নোভাক জোকোভিচ', 'টাইটেল':17},{'নাম':'রাফেল নাদাল', 'টাইটেল ':19] 
সর্বোচ্চ খেতাবপ্রাপ্ত # খেলোয়াড় (N=3) more =heapq.nlargest(3,grandslams,key =lambdas:s['titles'])আরও

আউটপুট

[{'নাম':'রজার ফেদেরার', 'টাইটেল':20}, {'নাম':'রাফেল নাদাল', 'টাইটেল':19}, {'নাম':'নোভাক জোকোভিচ', 'টাইটেল ':17}]

ডেটাফ্রেম থেকে N বৃহত্তম এবং সবচেয়ে ছোট খোঁজা৷

ঠিক আছে, বিশ্ব CSV ফাইল দিয়ে তৈরি, হ্যাঁ তারা করে!.

তাই এটা অনুমান করা খুবই নিরাপদ যে আপনার পাইথন ডেভেলপমেন্টের কোনো এক সময়ে আপনি CSV এবং দৃশ্যত ডেটাফ্রেমের সম্মুখীন হবেন।

একটি ডেটাফ্রেম থেকে N বৃহত্তম/ ক্ষুদ্রতম খুঁজে বের করার জন্য আমি আপনাকে কয়েকটি পদ্ধতি দেখাব।

প্রথম পদ্ধতিতে আমরা sort_values() পদ্ধতি ব্যবহার করে মানগুলি সাজাব এবং হেড পদ্ধতি ব্যবহার করে মানগুলি বাছাই করব৷

pdimport io# হিসাবে পান্ডা আমদানি করুন ")


# nsmallest (N =3)df.sort_values("titles").head(3)

আউটপুট

খেলোয়াড়ের খেতাব_______________মারে ৩ জোকোভিচ ১৭ নাদাল ১৯


# nlargest (N =3)df.sort_values("titles", ascending =False).head(3)

আউটপুট

খেলোয়াড় খেতাব_______________ফেদেরার ২০ নাদাল ১৯ জোকোভিচ ১৭

সারি সাজানোর এবং .head() পদ্ধতি ব্যবহার করার পরিবর্তে, আমরা .nsmallest() এবং .nlargest() পদ্ধতিকে কল করতে পারি।

df.nsmallest(3,columns="titles")

আউটপুট

খেলোয়াড়ের খেতাব_______________মারে ৩ জোকোভিচ ১৭ নাদাল ১৯


df.nlargest(3,columns ="titles")

আউটপুট

খেলোয়াড় খেতাব_______________ফেদেরার ২০ নাদাল ১৯ জোকোভিচ ১৭

উপসংহার

আপনি যদি তুলনামূলকভাবে অল্প সংখ্যক আইটেম খুঁজে বের করার চেষ্টা করেন, তাহলে nlargest() এবং nsmallest() ফাংশনগুলি সবচেয়ে উপযুক্ত৷

আপনি যদি সবচেয়ে ছোট বা সবচেয়ে বড় আইটেম (N=1) খুঁজে বের করার চেষ্টা করেন, তাহলে min() এবং max() ব্যবহার করা আরও দ্রুত।

একইভাবে, যদি N-এর আকার সংগ্রহের মতোই হয়, তাহলে প্রথমে এটি সাজানো এবং একটি টুকরো নেওয়া সাধারণত দ্রুত হয়।

উপসংহারে, nlargest() এবং nsmallest() এর বাস্তব বাস্তবায়ন হল কিভাবে পাইথন কাজ করে এবং আপনার পক্ষ থেকে এই অপ্টিমাইজেশানগুলিকে সম্পাদন করবে।


  1. পাইথন প্রোগ্রাম একটি তালিকার ক্ষুদ্রতম সংখ্যা খুঁজে বের করতে

  2. পাইথন প্রোগ্রাম একটি অ্যারের বৃহত্তম উপাদান খুঁজে বের করতে

  3. কিভাবে উইন্ডোজ 10 এ সবচেয়ে বড় ফাইলগুলি সহজেই খুঁজে পাবেন?

  4. Windows 10-এ সবচেয়ে বড় ফাইলগুলি কীভাবে সন্ধান করবেন?