1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Hộp Công Cụ Python

Connected

Bài tập

List comprehension lồng nhau

Tuyệt vời! Đến lúc này, bạn đã nắm khá vững cú pháp cơ bản của list comprehension. Hãy đẩy kỹ năng viết mã của bạn lên thêm một chút. Trong bài này, bạn sẽ viết một list comprehension bên trong một list comprehension khác, tức là list comprehension lồng nhau. Nghe có vẻ hơi rối, nhưng bạn làm được mà!

Tạm rời chuỗi một lúc. Một trong những cách dùng của list là biểu diễn các đối tượng nhiều chiều như ma trận. Trong Python, ma trận có thể được biểu diễn bằng danh sách các danh sách. Ví dụ, một ma trận 5 x 5 với các giá trị từ 0 đến 4 ở mỗi hàng có thể được viết như sau:

matrix = [[0, 1, 2, 3, 4],
          [0, 1, 2, 3, 4],
          [0, 1, 2, 3, 4],
          [0, 1, 2, 3, 4],
          [0, 1, 2, 3, 4]]

Nhiệm vụ của bạn là tạo lại ma trận này bằng cách dùng list comprehension lồng nhau. Hãy nhớ rằng bạn có thể tạo một hàng của ma trận chỉ với một list comprehension. Để tạo danh sách các danh sách, bạn chỉ cần đặt list comprehension đó làm biểu thức đầu ra của list comprehension tổng thể:

[[biểu thức đầu ra] for biến lặp in iterable]

Lưu ý rằng ở đây, chính biểu thức đầu ra cũng là một list comprehension.

Hướng dẫn

100 XP
  • Ở list comprehension bên trong — tức biểu thức đầu ra của list comprehension lồng nhau — hãy tạo danh sách các giá trị từ 0 đến 4 bằng range(). Dùng col làm biến lặp.
  • Ở phần iterable của list comprehension lồng nhau, dùng range() để đếm 5 hàng — tức tạo danh sách các giá trị từ 0 đến 4. Dùng row làm biến lặp; lưu ý bạn sẽ không cần dùng biến này để tạo các giá trị trong danh sách các danh sách.