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

Connected

Bài tập

Luyện tập built-in: enumerate()

Trong bài tập này, bạn sẽ luyện cách dùng hàm dựng sẵn enumerate() của Python. Hàm này hữu ích khi bạn muốn có một danh sách kèm chỉ mục. Ví dụ, giả sử bạn có một danh sách những người đến dự bữa tiệc bạn tổ chức. Danh sách được sắp theo thứ tự đến (Jerry đến đầu tiên, tiếp theo là Kramer, v.v.):

names = ['Jerry', 'Kramer', 'Elaine', 'George', 'Newman']

Nếu bạn muốn gắn một chỉ mục biểu thị thứ tự đến của mỗi người, bạn có thể dùng vòng lặp for sau:

indexed_names = []
for i in range(len(names)):
    index_name = (i, names[i])
    indexed_names.append(index_name)

[(0,'Jerry'),(1,'Kramer'),(2,'Elaine'),(3,'George'),(4,'Newman')]

Tuy nhiên, đây không phải là cách hiệu quả nhất. Hãy khám phá cách dùng enumerate() để làm việc này hiệu quả hơn.

Hướng dẫn

100 XP
  • Thay vì dùng for i in range(len(names)), hãy cập nhật vòng lặp for để dùng i làm biến chỉ mục và name làm biến lặp, đồng thời sử dụng enumerate().
  • Viết lại vòng lặp for trước đó bằng enumerate() và list comprehension để tạo danh sách mới indexed_names_comp.
  • Tạo thêm một danh sách (indexed_names_unpack) bằng cách dùng ký tự sao (*) để giải nén enumerate object được tạo khi dùng enumerate() trên names. Lần này, bắt đầu chỉ mục cho enumerate() từ một thay vì từ không.