একটি তালিকার মধ্যে নির্দিষ্ট অক্ষর সন্ধান করা Find


11

লক্ষ্যটি হ'ল ব্যবহারকারীর অনুচ্ছেদ এবং পুনরাবৃত্তি থেকে একটি তালিকা তৈরি করা যাতে আমি জেনে নিতে পারি যে কত শব্দে বিশেষ অক্ষর "জে, এক্স, কিউ, জেড" রয়েছে।

উদাহরণ ইনপুট:
মাটির একটি গর্তে, একটি হোবিট থাকত। কৃপণতা এবং নোংরা গন্ধে ভরা কোন নোংরা, নোংরা, ভেজা গর্ত নয়, তবুও শুকনো, খালি, বালুকাময় গর্ত এতে বসে বা খাওয়ার কিছুই নেই; এটি ছিল একটি হোবিট-হোল এবং এর অর্থ স্বাচ্ছন্দ্য।

উদাহরণ আউটপুট: বিরল অক্ষর সহ 1 শব্দ

আমি কোডটি শুরু করেছি যেখানে আমি ব্যবহারকারীর অনুচ্ছেদটিকে তালিকায় ভেঙে ফেলেছি তবে তালিকার মধ্য দিয়ে পুনরাবৃত্তি করতে এবং বিশেষ অক্ষরের প্রতিটি উদাহরণ খুঁজে পেতে আমার বেশ কষ্ট হচ্ছে।

আমার এ পর্যন্ত যা আছে:

def rareChar(words):
    rareWords = 0
    rareChars = ['j', 'x', 'q', 'z']
    for astring in words:
        wds = words.split()
        for char in wds:
            if char in rareChars:
                rareWords = rareWords + 1
    return rareWords

def CoolPara(words):
    print(rareChar(words), 'word(s) with a rare character')

    # DO NOT CHANGE CODE BELOW

    print(CoolPara(input("Enter: ")))

আমি যদি উদাহরণ ইনপুট দিয়ে চালিত করি তবে আমি 'বিরল চরিত্রের সাথে' 0 শব্দ (গুলি) আউটপুট পাই। আমি কীভাবে এটি ঠিক করতে পারলাম যাতে আমি প্রত্যাশিত আউটপুট পেতে পারি। আমি এখনও কোডিংয়ে তুলনামূলকভাবে নতুন হওয়ায় কোনও সাহায্যের প্রশংসা হবে

একটি দ্রুত নোট: আমাকে কেবল বিভক্ত () এবং লেন () এর পদ্ধতি / ফাংশন ব্যবহার করার অনুমতি দেওয়া হয়েছে


.indexকাজটি করা উচিত
বিগবাউন্টি

বিবৃতি এবং শর্তাদি পূরণ হচ্ছে তা নিশ্চিত করার জন্য আপনার আউটপুটটি নিয়ে চলতে হবে এবং কয়েকটি মুদ্রণ বিবৃতি যুক্ত করা উচিত।
29:49 '

টাইপো। অভ্যন্তরীণ লুপের উপরের লাইনটি wds = astring.split () হওয়া উচিত নয়
abhilb

এর উদ্দেশ্য কী for astring in words:?
norok2

পরিবর্তনশীল নামগুলি থেকে আমি মনে করি আপনি বিভ্রান্ত। "শব্দগুলিতে অ্যাসিরিংয়ের জন্য" পরিবর্তন করুন: শব্দগুলিতে শব্দের জন্য "থেকে ".স্প্লিট ():"। তারপরে "wds in char:" to to char in: "। এবং" wds = words.split () "মুছে ফেলুন।
কান্তাল

উত্তর:


4

হতে পারে এটি আপনাকে কিছু অজগর বৈশিষ্ট্যের সাথে পরিচয় করানোর সুযোগ হতে পারে:

from typing import List


def rare_char(sentence: str, rare_chars: List[str]=["j", "x", "q", "z"]) -> List[str]:
    return [word for word in sentence.split() if 
            any(char in word for char in rare_chars)]


def cool_para(sentence: str) -> str:
    return f"{len(rare_char(sentence))} word(s) with rare characters"

এই উত্তরটি ব্যবহার করে:

  1. টাইপিং , যা তৃতীয় পক্ষের সরঞ্জাম যেমন টাইপ চেকার, আইডিই, লন্টারগুলি ব্যবহার করতে পারে তবে গুরুত্বপূর্ণ বিষয়গুলি আপনার কোডটি পড়তে পারে এমন অন্য মানুষের কাছে আপনার উদ্দেশ্যগুলি পরিষ্কার করার জন্য।
  2. ডিফল্ট যুক্তি , ফাংশনের ভিতরে হার্ডকডিংয়ের পরিবর্তে। আপনার ক্রিয়াকলাপগুলি নথিভুক্ত করা অত্যন্ত গুরুত্বপূর্ণ, যাতে কোনও ব্যবহারকারী ফলাফল দ্বারা অবাক না হন ( স্বল্প বিস্ময়ের নীতি দেখুন )। আপনার কোড ডকুমেন্ট করার অন্যান্য উপায় অবশ্যই রয়েছে ( ডকস্টাস্টিংগুলি দেখুন ) এবং সেই ইন্টারফেসটি ডিজাইনের অন্যান্য উপায়গুলি ( উদাহরণস্বরূপ একটি শ্রেণি হতে পারে ), তবে এটি কেবল বিন্দুটি প্রদর্শনের জন্য।
  3. বোধগম্যগুলির তালিকা তৈরি করুন, যা আপনার কোডটিকে অপরিহার্যতার পরিবর্তে আরও ঘোষিত করে আরও পাঠযোগ্য করে তুলতে পারে । অপরিহার্য অ্যালগরিদমের পিছনে উদ্দেশ্য নির্ধারণ করা কঠিন হতে পারে।
  4. স্ট্রিং ইন্টারপোলেশন , যা আমার অভিজ্ঞতায় কমেন্টেটিংয়ের চেয়ে কম ত্রুটিযুক্ত।
  5. আমি ফাংশনগুলির নামকরণের জন্য পিপ 8 স্টাইল গাইড ব্যবহার করেছি , যা অজগর বিশ্বের সর্বাধিক প্রচলিত কনভেনশন।
  6. অবশেষে, মুদ্রণ পরিবর্তে আমি ফিরে strমধ্যে cool_paraফাংশন কারণ নিচের কোড # DO NOT CHANGE CODE BELOWমন্তব্য ফাংশন কল ফল মুদ্রণ করা হয়।

1
আমি এখনও অবধি দেখেছি সেরা বাস্তবায়নগুলির একটি। বেশি পাইথোনিক হতে পারে না। :-) আমি শুধু নামান্তর হবে rare_chars()থেকে find_rare_words()পরিবর্তে।
accdias

1

আদর্শভাবে আপনি তালিকা বোধগম্যতা ব্যবহার করতে চান।

def CoolPara(letters):
  new = [i for i in text.split()]
  found = [i for i in new if letters in i]
  print(new) # Optional
  print('Word Count: ', len(new), '\nSpecial letter words: ', found, '\nOccurences: ', len(found))

CoolPara('f') # Pass your special characters through here

এটি আপনাকে দেয়:

['In', 'a', 'hole', 'in', 'the', 'ground', 'there', 'lived', 'a', 'hobbit.', 'Not',
 'a', 'nasty,', 'dirty,', 'wet', 'hole,', 'filled', 'with', 'the', 'ends', 'of',
'worms', 'and', 'an', 'oozy', 'smell,', 'no', 'yet', 'a', 'dry,', 'bare,', 'sandy',
'hole', 'with', 'nothing', 'in', 'it', 'to', 'sit', 'down', 'on', 'or', 'to', 'eat;',
'it', 'was', 'a', 'hobbit-hole,', 'and', 'that', 'means', 'comfort']
Word Count:  52
Special letter words:  ['filled', 'of', 'comfort']
Occurences:  3

0
def rareChar(words):
rareWords = 0
rareChars = ['j', 'x', 'q', 'z']

#Split paragraph into words
words.split()
for word in words:
    #Split words into characters
    chars = word.split()
    for char in chars:
        if char in rareChars:
            rareWords = rareWords + 1
return rareWords

def CoolPara(words):
    #return value rather than printing
    return '{} word(s) with a rare character'.format(rareChar(words))


# DO NOT CHANGE CODE BELOW

print(CoolPara(input("Enter: ")))

ইনপুট: হ্যালো এটি চিড়িয়াখানা সম্পর্কে একটি বাক্য

আউটপুট: বিরল অক্ষর সহ 1 টি শব্দ (গুলি)


0

নিম্নলিখিত কোডটি আপনার একটি সম্পাদনা যা এর যথাযথ উত্তরের ফলাফল 1

def main():

    def rareChar(words):
        rareWords = 0
        rareChars = ['j', 'x', 'q', 'z']

        all_words = list(words.split())

        for a_word in all_words:
            for char in a_word:
                if char in rareChars:
                    rareWords = rareWords + 1
        return rareWords

    def CoolPara(words):
        print(rareChar(words), 'word(s) with a rare character')


    # DO NOT CHANGE CODE BELOW

    print(CoolPara(input("Enter: ")))

main()

উত্তর:

C:\Users\Jerry\Desktop>python Scraper.py
Enter: In a hole in the ground there lived a hobbit. Not a nasty, dirty, wet hole, filled with the ends of worms and an oozy smell, no yet a dry, bare, sandy hole with nothing in it to sit down on or to eat; it was a hobbit-hole, and that means comfort.

1 word(s) with a rare character

0

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

প্যারা পদ্ধতি প্রয়োজন হয় না।

def rareChar(words):
    rareWords = 0
    rareChars = ['j', 'x', 'q', 'z']
    for word in words:
        wds = word.split()
        for char in wds:
            if char in rareChars:
                rareWords = rareWords + 1
    return rareWords

words = 'john xray quebec zulu'
# words = (input("Enter: "))

x = rareChar(words)
print(f"There are {x} word(s) with a rare character")

0

বার্ব প্রদত্ত সমাধানটি একটি একক চিঠির জন্য কাজ করে:

CoolPara ( 'চ')

মূল পোস্টার হিসাবে জিজ্ঞাসা করা হিসাবে এটি বহুবিধ চরিত্রগুলির সাথে কাজ করে না। উদাহরণস্বরূপ, এটি সঠিক ফলাফল দেয় না:

CoolPara ( "jxqz")

বার্বের সমাধানের সামান্য উন্নত সংস্করণটি এখানে:

def CoolPara(letters):
    new = [i for i in text.split()]
    found = list()
    for i in new:
        for x in i:
            for l in letters:
                if x == l:
                    found.append(i)
    print("Special letter words: ", found)
    print("word(s) with rare characters ", len(found))
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.