शुरू करेंमुफ़्त में शुरू करें

वन-टाइम कैलकुलेशन लूप

generations नाम की एक लिस्ट आपके सेशन में लोड की गई है जिसमें प्रत्येक Pokémon की जनरेशन को दर्शाने वाले integers हैं। आप प्रत्येक जनरेशन के काउंट इकट्ठा करना चाहते हैं और यह निर्धारित करना चाहते हैं कि कुल integers में से प्रत्येक जनरेशन का प्रतिशत कितना है.

इस कार्य को पूरा करने के लिए नीचे दिया गया लूप लिखा गया था:

for gen,count in gen_counts.items():
    total_count = len(generations)
    gen_percent = round(count / total_count * 100, 2)
    print(
      'generation {}: count = {:3} percentage = {}'
      .format(gen, count, gen_percent)
    )

आइए इस लूप को अधिक कुशल बनाते हैं, एक बार होने वाली गणना (one-time calculation) को लूप के बाहर ले जाकर.

यह अभ्यास पाठ्यक्रम का हिस्सा है

Efficient Python Code लिखना

पाठ्यक्रम देखें

अभ्यास निर्देश

  • collections मॉड्यूल से Counter इम्पोर्ट करें.
  • Counter() का उपयोग करके generations लिस्ट से प्रत्येक जनरेशन का काउंट इकट्ठा करें। इसे gen_counts के रूप में सेव करें.
  • एक बेहतर for लूप लिखें जो एक बार होने वाली गणना को लूप के बाहर (ऊपर) रखे। मूल for लूप जैसा ही सटीक सिंटैक्स उपयोग करें (उस one-time गणना को कॉपी-पेस्ट करके लूप के ऊपर रख दीजिए).

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

# Import Counter
____

# Collect the count of each generation
gen_counts = ____

# Improve for loop by moving one calculation above the loop
total_count = ____

for gen,count in gen_counts.items():
    gen_percent = round(count / total_count * 100, 2)
    print('generation {}: count = {:3} percentage = {}'
          .format(gen, count, gen_percent))
कोड संपादित करें और चलाएँ