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
Petunjuk latihan
- Lengkapi header fungsi untuk fungsi
get_lengths()yang memiliki satu parameter,input_list. - Dalam
forloop pada definisi fungsi,yieldpanjang string dalaminput_list. - Lengkapi bagian iterable dari
forloop untuk mencetak nilai yang dihasilkan oleh fungsi generatorget_lengths(). Berikan pemanggilanget_lengths()dengan meneruskan daftarlannister.
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)