1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Viết mã Python hiệu quả

Connected

Bài tập

Thu thập Pokémon mà không cần vòng lặp

Một danh sách chứa 720 Pokémon đã được nạp vào phiên làm việc của bạn dưới tên poke_names. Một danh sách khác chứa thế hệ (generation) tương ứng của mỗi Pokémon đã được nạp dưới tên poke_gens.

Một vòng lặp for đã được tạo để lọc các Pokémon thuộc thế hệ một hoặc hai, và thu thập số lượng chữ cái trong tên của mỗi 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)

Hướng dẫn

100 XP
  • Loại bỏ vòng lặp for ở trên bằng cách dùng list comprehension và hàm map():

    • Dùng list comprehension để thu thập mỗi Pokémon thuộc thế hệ 1 hoặc thế hệ 2. Lưu lại dưới tên gen1_gen2_pokemon.
    • Dùng hàm map() để lấy số lượng chữ cái trong tên của mỗi Pokémon trong danh sách gen1_gen2_pokemon. Lưu đối tượng map này là name_lengths_map.
    • Kết hợp gen1_gen2_pokemon và name_lengths_map thành một danh sách gọi là gen1_gen2_name_lengths.