Khóa học Phát triển Python Nâng cao
Chương
>
Cấp độ
Danh sách nâng cao
Tạo Danh Sách Lồng Nhau
Mục tiêu
Bảo quản các loại gia vị một cách chính xác trong giá gia vị bằng cách sử dụng danh sách lồng nhau.
Một trong những giá gia vị đang trống và cần được bổ sung hàng hóa đúng cách, có gia vị trong kho nhưng chúng cần được sắp xếp cẩn thận và tổ chức đúng chỗ trên giá gia vị.
Do số lượng mục lớn và thực tế chúng được lưu trữ trên các kệ khác nhau trong một giá gia vị, các danh sách và từ điển thông thường sẽ không đủ. Trong những trường hợp như vậy, bạn có thể sử dụng Danh sách lồng nhau, đây là các danh sách chứa một hoặc nhiều danh sách bên trong chúng.
Để lưu trữ gia vị, trước tiên bạn cần lấy các lọ để lưu trữ các mục một cách chính xác, hãy đi tới dấu X màu vàng, hướng về phía thùng và sử dụng hàm collect() để lấy "empty jar" nhằm hỗ trợ việc lưu trữ.
Khi các lọ đã được lấy, hãy đi tới những dấu X nhạt ở phía trước các thùng gỗ. Có bốn (4) hằng số danh sách trong cấp độ này, mỗi cái dành cho một thùng, đó là: crate1, crate2, crate3, và crate4. Sử dụng hàm speak() với các hằng số danh sách này để xác định nội dung của từng thùng, các hằng số tương ứng với các thùng từ phải sang trái, ví dụ: player.speak(crate1).
Khi bạn đã xác định được nội dung của các thùng, hãy sử dụng Biểu thức danh sách để tạo các danh sách mới mà không có các mục không cần thiết có trong các hằng số danh sách. Nếu nội dung của một thùng bao gồm: "package", "string" hoặc "stuffing", hãy sử dụng cùng một công thức như trong chương trước để sắp xếp danh sách, ví dụ:
crate1 = ["bay herb", "cilantro herb", "ginger herb", "oregano herb", "string"] herbs = [x for x in crate1 if not "string" in x]
Mã lệnh trên sẽ tạo ra một danh sách mới chứa các mục không bao gồm từ "string". Các danh sách nên được đặt tên là: herbs, spices, salts và sugars; bạn sẽ biết danh sách nào nên được đặt tên như vậy vì các mục bên trong danh sách mang tên đó.
Khi tất cả bốn danh sách đã được tạo, đến lúc kết hợp chúng lại thành một Danh sách lồng nhau. Tạo một danh sách có tên seasonings và thêm các danh sách bạn đã tạo vào bên trong danh sách mới, như sau:
seasonings = [ ] seasonings.append(herbs) .......
Khi tất cả các mục đã được đưa vào trong Danh sách lồng nhau, hãy đi tới dấu X tối trên thảm xanh và hướng về phía kệ. Sử dụng hàm speak() kết hợp với danh sách lồng nhau seasonings để xác nhận các mục trên mỗi kệ. Sau đó, sử dụng hàm place() với danh sách này để hoàn thành cấp độ, như sau: player.speak(seasonings).