MulaiMulai sekarang secara gratis

Loop dengan perhitungan satu kali

Sebuah list bilangan bulat yang merepresentasikan generasi masing-masing Pokémon telah dimuat ke sesi Anda dengan nama generations. Anda ingin mengumpulkan jumlah tiap generasi dan menentukan persentase tiap generasi dari total jumlah bilangan bulat.

Loop berikut ditulis untuk menyelesaikan tugas ini:

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)
    )

Mari membuat loop ini lebih efisien dengan memindahkan perhitungan satu kali ke luar loop.

Latihan ini adalah bagian dari kursus

Menulis Kode Python yang Efisien

Lihat Kursus

Petunjuk latihan

  • Impor Counter dari modul collections.
  • Gunakan Counter() untuk mengumpulkan jumlah tiap generasi dari list generations. Simpan sebagai gen_counts.
  • Tulis for loop yang lebih baik dengan menempatkan perhitungan satu kali di luar (di atas) loop. Gunakan sintaks yang persis sama seperti for loop asli (cukup salin dan tempel perhitungan satu kali tersebut di atas loop).

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# 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))
Edit dan Jalankan Kode