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

पायथन में लॉग फ़ाइलों में डेटा को पुन:व्यवस्थित करें

मान लीजिए कि हमारे पास लॉग की एक सरणी है। उस सरणी में प्रत्येक प्रविष्टि शब्दों का एक सीमित स्थान है। प्रत्येक लॉग में पहला शब्द अल्फ़ान्यूमेरिक पहचानकर्ता है। फिर, नीचे की तरह विभिन्न प्रकार के तार होते हैं -

  1. आईडी के बाद प्रत्येक शब्द में केवल छोटे अक्षर होंगे;
  2. आईडी के बाद प्रत्येक शब्द में केवल अंक होंगे।

हम इन दो प्रकार के लॉग्स को क्रमशः लेटर-लॉग्स और डिजिट-लॉग्स कहेंगे। और ti की गारंटी है कि प्रत्येक लॉग में उसकी आईडी के बाद कम से कम एक शब्द होता है।

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

इसलिए, यदि इनपुट लॉग की तरह है =["dig1 9 2 5 2", "let1 art can", "dig2 4 8", "let2 खुद किट डिग", "let3 आर्ट जीरो"], तो आउटपुट होगा [ "let1 art can","let3 art Zero",,"let2 own kit dig",,"dig1 9 2 52",,"dig2 4 8"]

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • शब्द:=एक नई सूची
  • अंक:=एक नई सूची
  • प्रत्येक लॉग इन लॉग के लिए, करें
    • s :=लॉग के शब्दों की एक सूची
    • यदि दूसरा शब्द एक अंक है, तो
      • अंकों के अंत में लॉग डालें
    • अन्यथा,
      • रिक्त स्थान से अलग करके s के प्रत्येक तत्व में शामिल हों और अंत में शब्द सरणी में डालें
    • words =फिर शब्दों को लेक्सिकोग्राफिक रूप से क्रमबद्ध करें
  • शब्द:=रिक्त स्थान से अलग करके शब्द सरणी के प्रत्येक तत्व में शामिल हों और स्ट्रिंग्स की एक सूची बनाएं
  • दो सूचियों वाले शब्दों और अंकों को मर्ज करें, फिर वापस आएं

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

उदाहरण

class Solution:
   def reorderLogFiles(self, logs):
      words = []
      nums = []
      for log in logs:
         s = log.split()
         if s[1].isdigit():
            nums.append(log)
         else:
            words.append((s[0], ' '.join(s[1:])))
            words = sorted(words, key=lambda x: (x[1],x[0]))
            words = [' '.join(w) for w in words]
      return words + nums
ob = Solution()
print(ob.reorderLogFiles(["dig1 9 2 5 2","let1 art can","dig2 4
8","let2 own kit dig","let3 art zero"]))

इनपुट

["dig1 9 2 5 2","let1 art can","dig2 4 8","let2 own kit dig","let3 art zero"]

आउटपुट

['let1 art can', 'let3 art zero', 'let2 own kit dig', 'dig1 9 2 5 2', 'dig24 8']

  1. पायथन में सांख्यिकीय सोच

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

  1. पायथन में जनगणना के आंकड़ों का विश्लेषण

    जनगणना किसी दी गई आबादी के बारे में व्यवस्थित तरीके से जानकारी दर्ज करने के बारे में है। कैप्चर किए गए डेटा में विभिन्न श्रेणी की जानकारी शामिल होती है जैसे - जनसांख्यिकीय, आर्थिक, आवास विवरण आदि। यह अंततः सरकार को वर्तमान परिदृश्य को समझने के साथ-साथ भविष्य के लिए योजना बनाने में मदद करता है। इस ले

  1. पायथन का उपयोग करके फ़ाइल में बाइनरी डेटा कैसे लिखें?

    बाइनरी फाइलें कोई भी फाइल होती हैं जहां प्रारूप पठनीय वर्णों से बना नहीं होता है। बाइनरी फाइलें जेपीईजी या जीआईएफ जैसी छवि फाइलों, एमपी 3 जैसी ऑडियो फाइलों या वर्ड या पीडीएफ जैसे बाइनरी दस्तावेज़ प्रारूपों से लेकर हो सकती हैं। पायथन में, फाइलें डिफ़ॉल्ट रूप से टेक्स्ट मोड में खोली जाती हैं। फ़ाइलों