MulaiMulai sekarang secara gratis

Bangun sebuah generator

Pada latihan sebelumnya, Anda terutama menulis ekspresi generator menggunakan sintaks komprehensi. Kemampuan menggunakan sintaks komprehensi untuk ekspresi generator membuat pekerjaan Anda jauh lebih mudah!

Sekarang, ingat dari video bahwa selain ekspresi generator, ada juga fungsi generator. Fungsi generator adalah fungsi yang, seperti ekspresi generator, menghasilkan serangkaian nilai, alih-alih mengembalikan satu nilai. Fungsi generator didefinisikan seperti fungsi biasa, tetapi setiap kali menghasilkan nilai, ia menggunakan kata kunci yield alih-alih return.

Dalam latihan ini, Anda akan membuat fungsi generator dengan mekanisme yang mirip dengan ekspresi generator yang Anda definisikan pada latihan sebelumnya:

lengths = (len(person) for person in lannister)

Latihan ini adalah bagian dari kursus

Kotak Perkakas Python

Lihat Kursus

Petunjuk latihan

  • Lengkapi header fungsi untuk fungsi get_lengths() yang memiliki satu parameter, input_list.
  • Dalam for loop pada definisi fungsi, yield panjang string dalam input_list.
  • Lengkapi bagian iterable dari for loop untuk mencetak nilai yang dihasilkan oleh fungsi generator get_lengths(). Berikan pemanggilan get_lengths() dengan meneruskan daftar lannister.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# Create a list of strings
lannister = ['cersei', 'jaime', 'tywin', 'tyrion', 'joffrey']

# Define generator function get_lengths
def ____:
    """Generator function that yields the
    length of the strings in input_list."""

    # Yield the length of a string
    for person in input_list:
        ____

# Print the values generated by get_lengths()
for value in ____:
    print(value)
Edit dan Jalankan Kode