Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

Python में सबसे बड़े या सबसे छोटे आइटम कैसे खोजें?


यह लेख उन डेवलपर्स के लिए है जो Python में सबसे बड़े या सबसे छोटे आइटम ढूंढना चाहते हैं। मैं उपयोग करने के लिए कुछ मेथड दिखाऊंगा और आपके लिए सर्वोत्तम मेथड पर निष्कर्ष निकालूंगा।

मेथड - 1: लिस्ट पर स्लाइस दृष्टिकोण

यदि आप केवल एकल सबसे छोटे या सबसे बड़े आइटम को खोजने का प्रयास कर रहे हैं यानी N = 1, तो min() और max() का उपयोग करना तेज़ है।

आइए कुछ रैंडम इंटीजर उत्पन्न करके शुरू करें।

import random

# इंटीजर की एक रैंडम लिस्ट बनाएं
random_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 का स्लाइस लेना तेज़ होता है।

# स्लाइस दृष्टिकोण का उपयोग करके nsmallest प्राप्त करें (N=3)
sorted(random_list)[:3]
[1, 2, 3]
# स्लाइस दृष्टिकोण का उपयोग करके nlargest प्राप्त करें (N=3)
sorted(random_list)[-3:]
[7, 8, 9]

मेथड - 2: लिस्ट पर heapq मेथड

heapq मॉड्यूल में दो फ़ंक्शन nlargest() और nsmallest() होते हैं जिनका उपयोग n सबसे छोटे या n सबसे बड़े आइटम खोजने के लिए किया जा सकता है।

import heapq
import random

random_list = random.sample(range(1, 10), 9)

# nsmallest आइटम (N=3)
heapq.nsmallest(3, random_list)
[1, 2, 3]
# nlargest आइटम (N=3)
heapq.nlargest(3, random_list)
[9, 8, 7]

यदि आपके पास थोड़ा अधिक जटिल डेटा है, तो heapq फ़ंक्शन में एक key पैरामीटर होता है जिसका उपयोग किया जा सकता है।

import heapq

grandslams = [
    {'name': 'Roger Federer', 'titles': 20},
    {'name': 'Rafel Nadal', 'titles': 19},
    {'name': 'Novak Djokovic', 'titles': 17},
    {'name': 'Andy Murray', 'titles': 3},
]

# कम खिताब वाले खिलाड़ी (N=3)
less = heapq.nsmallest(3, grandslams, key=lambda s: s['titles'])
less
[{'name': 'Andy Murray', 'titles': 3},
 {'name': 'Novak Djokovic', 'titles': 17},
 {'name': 'Rafel Nadal', 'titles': 19}]
# सबसे अधिक खिताब वाले खिलाड़ी (N=3)
more = heapq.nlargest(3, grandslams, key=lambda s: s['titles'])
more
[{'name': 'Roger Federer', 'titles': 20},
 {'name': 'Rafel Nadal', 'titles': 19},
 {'name': 'Novak Djokovic', 'titles': 17}]

DataFrame से N सबसे बड़े और सबसे छोटे मान ढूंढना

दुनिया CSV फ़ाइलों से बनी है, हाँ वे हैं! इसलिए यह मान लेना बहुत सुरक्षित है कि आपके Python विकास में किसी बिंदु पर आप CSV और जाहिर तौर पर DataFrame का सामना करेंगे।

मैं आपको DataFrame से N सबसे बड़े/सबसे छोटे मान खोजने के कुछ मेथड दिखाऊंगा।

पहले मेथड में हम sort_values() मेथड का उपयोग करके मानों को सॉर्ट करेंगे और head मेथड का उपयोग करके मान लेंगे।

import pandas as pd
import io

# अपना डेटा परिभाषित करें
data = """player,titles
Djokovic,17
Nadal,19
Federer,20
Murray,3"""

throwaway_storage = io.StringIO(data)
df = pd.read_csv(throwaway_storage, index_col="player")
# nsmallest (N = 3)
df.sort_values("titles").head(3)
       titles
player
Murray       3
Djokovic    17
Nadal       19
# nlargest (N = 3)
df.sort_values("titles", ascending=False).head(3)
       titles
player
Federer     20
Nadal       19
Djokovic    17

पंक्तियों को सॉर्ट करने और .head() मेथड का उपयोग करने के बजाय, हम .nsmallest() और .nlargest() मेथड को कॉल कर सकते हैं।

df.nsmallest(3, columns="titles")
       titles
player
Murray       3
Djokovic    17
Nadal       19
df.nlargest(3, columns="titles")
       titles
player
Federer     20
Nadal       19
Djokovic    17

निष्कर्ष

  • यदि आप अपेक्षाकृत कम संख्या में आइटम ढूंढने का प्रयास कर रहे हैं, तो nlargest() और nsmallest() फ़ंक्शन सबसे उपयुक्त हैं।
  • यदि आप केवल एकल सबसे छोटे या सबसे बड़े आइटम को खोजने का प्रयास कर रहे हैं (N=1), तो min() और max() का उपयोग करना तेज़ है।
  • इसी तरह, यदि N संग्रह के आकार के बराबर है, तो आमतौर पर पहले सॉर्ट करना और फिर एक स्लाइस लेना तेज़ होता है।
  • निष्कर्ष में, nlargest() और nsmallest() का वास्तविक कार्यान्वयन इस बात में अनुकूली है कि Python कैसे काम करता है और ये आपकी ओर से इनमें से कुछ अनुकूलन को पूरा करेगा।
  1. Python प्रोग्राम से ऐरे में सबसे बड़ा तत्व खोजना Python प्रोग्राम से ऐरे में सबसे बड़ा तत्व खोजना

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक ऐरे दिया गया है, हमें ऐरे के सबसे बड़े तत्व की गणना करने की आवश्यकता है। यहां हम ब्रूट-फोर्स दृष्टिकोण का उपयोग करते हैं जिसमें हम पूरे लूप को पार करके और तत्व प्राप्त करके सबसे बड़ा तत्व निकालते हैं। हम नीच

  1. विंडोज 10 पर सबसे बड़ी फाइलों को आसानी से ढूंढें ताकि डिस्क स्पेस खाली हो सके विंडोज 10 पर सबसे बड़ी फाइलों को आसानी से ढूंढें ताकि डिस्क स्पेस खाली हो सके

    कभी-कभी आपका कंप्यूटर ठीक से काम नहीं कर सकता या धीमा हो सकता है क्योंकि आपके पास पर्याप्त डिस्क स्पेस नहीं है। इस मामले में डिस्क पर बड़ी फाइलों को ढूंढना और उन्हें किसी अन्य स्टोरेज डिवाइस पर ले जाना या उन्हें हटाकर डिस्क स्पेस खाली करना उचित है। संबंधित लेख: डिस्क क्लीनअप करके स्पेस खाली करें।

  1. त्वरित गाइड: विंडोज 10 पर सबसे बड़ी फ़ाइलों का पता लगाएं और हटाएं त्वरित गाइड: विंडोज 10 पर सबसे बड़ी फ़ाइलों का पता लगाएं और हटाएं

    यदि आपको कम स्टोरेज स्पेस का संदेश मिलता है और मेमोरी खाली करना मुश्किल लगता है, तो ऐसा करने का सबसे अच्छा तरीका है अपने विंडोज 10 पर एक बड़ी फ़ाइल ढूंढना। इससे आपको पता चल जाएगा कि कौन सी फ़ाइलें अनावश्यक हैं, और आप उन्हें हटा सकते हैं, जिससे स्टोरेज स्पेस पुनर्प्राप्त होगा। लेकिन पीसी पर बड़ी फ़ा