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

पायथन में वाक्यांशों को उनके प्रकट होने के आधार पर सॉर्ट करने का प्रोग्राम


मान लीजिए हमें दो सूचियां दी गई हैं; 'phrases' जिसमें कुछ चुनिंदा वाक्यांश हैं और 'sentences' जिसमें कई वाक्य हैं जिनमें दूसरी सूची के वाक्यांश हो भी सकते हैं और नहीं भी। हमें यह पता लगाना है कि पहली सूची के विभिन्न वाक्यांश दूसरी सूची में प्रकट होते हैं या नहीं और पहली सूची के वाक्यांशों को दूसरी सूची में उनके प्रकट होने के आधार पर सॉर्ट करना है। हम सॉर्ट की गई सूची 'phrases' को आउटपुट के रूप में वापस करते हैं।

उदाहरण के लिए, यदि इनपुट phrases = ['strong', 'durable', 'efficient'], sentences = ['the product is durable and efficient', 'strong and durable', 'it is efficient', 'like it because it is efficient'] है, तो आउटपुट ['efficient', 'durable', 'strong'] होगा।

वाक्यांश 'efficient' वाक्यों 0, 2, और 3 में प्रकट होता है। इसके सबसे अधिक प्रकट होने हैं, इसलिए यह आउटपुट की शुरुआत में है। वाक्यांश 'durable' और 'strong' क्रमशः वाक्य 0 और 1, और 1 में प्रकट होते हैं। तो, ये वाक्यांश आउटपुट में अगले स्थान प्राप्त करते हैं।

हल करने के चरण

  1. cnt := एक नया मैप
  2. phrases में प्रत्येक feature के लिए:
    • cnt[feature] := 0
  3. sentences में प्रत्येक response के लिए:
    • p := response.split() से शब्दों की नई सूची
    • s := set(p) से नया सेट
    • s में प्रत्येक i के लिए:
      • यदि i cnt में मौजूद है, तो cnt[i] := cnt[i] + 1
  4. res := प्रत्येक k के लिए जोड़े (k, cnt[k]) वाली नई सूची
  5. res सूची को काउंट k के आधार पर सॉर्ट करें।
  6. k काउंट मान को शामिल किए बिना res सूची वापस करें।

उदाहरण

बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:

def solve(phrases, sentences):
    cnt = {}
    for feature in phrases:
        cnt[feature] = 0
    for response in sentences:
        p = response.split()
        s = set(p)
        for i in s:
            if i in cnt:
                cnt[i] += 1
    res = [[k, cnt[k]] for k in cnt]
    res.sort(key=lambda x: (-x[1], phrases.index(x[0])))
    return [i[0] for i in res]

print(solve(['strong', 'durable', 'efficient'], ['the product is durable and efficient', 'strong and durable', 'it is efficient', 'like it because it is efficient']))

इनपुट

['strong', 'durable', 'efficient'], ['the product is durable and efficient', 'strong and durable', 'it is efficient', 'like it because it is efficient']

आउटपुट

['efficient', 'durable', 'strong']
  1. पायथन प्रोग्राम: कॉकटेल सॉर्ट पायथन प्रोग्राम: कॉकटेल सॉर्ट

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक सूची दी गई है, हमें दी गई सूची पर बिटोनिक सॉर्ट करना है और सूची प्रदर्शित करनी है। कॉकटेल सॉर्ट यहां सॉर्ट बबल सॉर्ट की तरह होता है जहां पुनरावृत्ति दोनों दिशाओं में होती है। एल्गोरिदम सबसे पहले सरणी को बाएं से दाएं पार किय

  1. पायथन प्रोग्राम में सिलेक्शन सॉर्ट पायथन प्रोग्राम में सिलेक्शन सॉर्ट

    इस लेख में, हम पायथन 3.x में सिलेक्शन सॉर्ट और इसके कार्यान्वयन के बारे में सीखेंगे। या इससे पहले। सिलेक्शन सॉर्ट एल्गोरिदम में, एक ऐरे को अनसॉर्टेड पार्ट से न्यूनतम एलिमेंट को रिकर्सिवली ढूंढकर और इसे शुरुआत में इन्सर्ट करके सॉर्ट किया जाता है। दिए गए ऐरे पर सिलेक्शन सॉर्ट के निष्पादन के दौरान दो

  1. पायथन प्रोग्राम: सिलेक्शन सॉर्ट एल्गोरिदम पायथन प्रोग्राम: सिलेक्शन सॉर्ट एल्गोरिदम

    इस लेख में, हम पायथन 3.x या उससे पहले के संस्करण में सिलेक्शन सॉर्ट और इसके कार्यान्वयन के बारे में जानेंगे।सिलेक्शन सॉर्ट एल्गोरिदम में, एक सरणी को अनसॉर्टेड भाग से न्यूनतम तत्व को पुनरावर्ती रूप से ढूंढकर और इसे शुरुआत में डालकर सॉर्ट किया जाता है। दिए गए सरणी पर सिलेक्शन सॉर्ट के निष्पादन के दौरा