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

बिना लूप के Pokémon इकट्ठा करना

poke_names के रूप में 720 Pokémon वाली एक सूची आपके सेशन में लोड की गई है. प्रत्येक Pokémon की संबंधित generation वाली दूसरी सूची poke_gens के रूप में लोड की गई है.

एक for लूप बनाया गया है जो generation one या two से संबंधित Pokémon को फ़िल्टर करता है और प्रत्येक Pokémon के नाम में अक्षरों की संख्या इकट्ठा करता है:

gen1_gen2_name_lengths_loop = []

for name,gen in zip(poke_names, poke_gens):
    if gen < 3:
        name_length = len(name)
        poke_tuple = (name, name_length)
        gen1_gen2_name_lengths_loop.append(poke_tuple)

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

Efficient Python Code लिखना

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

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

  • ऊपर दिए गए for लूप को list comprehension और map() फंक्शन का उपयोग करके हटा दें:

    • list comprehension से वे सभी Pokémon इकट्ठा करें जो generation 1 या generation 2 से संबंधित हैं. इसे gen1_gen2_pokemon के रूप में सेव करें.
    • map() फंक्शन का उपयोग करके gen1_gen2_pokemon सूची के भीतर प्रत्येक Pokémon के नाम में अक्षरों की संख्या इकट्ठा करें. इस map object को name_lengths_map के रूप में सेव करें.
    • gen1_gen2_pokemon और name_lengths_map को मिलाकर gen1_gen2_name_lengths नाम की एक सूची बनाएँ.

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

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

# Collect Pokémon that belong to generation 1 or generation 2
gen1_gen2_pokemon = [name for name,gen in ____(____, ____) if gen < ____]

# Create a map object that stores the name lengths
name_lengths_map = ____(len, ____)

# Combine gen1_gen2_pokemon and name_lengths_map into a list
gen1_gen2_name_lengths = [*____(____, ____)]

print(gen1_gen2_name_lengths_loop[:5])
print(gen1_gen2_name_lengths[:5])
कोड संपादित करें और चलाएँ