Bắt đầu ngayBắt đầu miễn phí

Xây dựng một generator

Trong các bài tập trước, bạn chủ yếu viết các generator expression, vốn dùng cú pháp comprehension. Việc có thể dùng cú pháp comprehension cho generator expression đã giúp bạn làm việc dễ dàng hơn nhiều!

Giờ hãy nhớ lại từ video rằng không chỉ có generator expression, còn có cả generator function. Generator function là các hàm mà, giống như generator expression, tạo ra một chuỗi giá trị bằng yield thay vì trả về một giá trị duy nhất. Một generator function được định nghĩa giống như hàm thông thường, nhưng mỗi khi tạo ra một giá trị, nó dùng từ khóa yield thay cho return.

Trong bài tập này, bạn sẽ tạo một generator function với cơ chế tương tự như generator expression bạn đã định nghĩa ở bài trước:

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

Bài tập này là một phần của khóa học

Hộp Công Cụ Python

Xem khóa học

Hướng dẫn bài tập

  • Hoàn thiện phần đầu hàm cho hàm get_lengths() với một tham số duy nhất, input_list.
  • Trong vòng lặp for trong định nghĩa hàm, yield độ dài của các chuỗi trong input_list.
  • Hoàn thiện phần iterable của vòng lặp for để in ra các giá trị được tạo bởi generator function get_lengths(). Gọi get_lengths() và truyền vào danh sách lannister.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# 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)
Chỉnh sửa và Chạy Mã