Danh sách (List) là cấu trúc dữ liệu tích hợp Python 3. Python List tổ chức lưu trữ dữ liệu có thứ tự, như tên nhà cung cấp công ty sản xuất, thông tin lương nhân viên, danh sách điểm học sinh, hoặc bất cứ gì.
Có nhiều hàm tích hợp Python thay đổi thao tác dữ liệu lưu danh sách.
Hướng dẫn này phân tích vài phương thức tích hợp hữu ích làm việc danh sách. Chúng ta khám phá cách thêm/xóa phần tử, đếm phần tử, đảo ngược danh sách, và hơn thế.
Ôn Tập Danh Sách (List Refresher)
Danh sách là kiểu dữ liệu Python có thể thay đổi (mutable), sắp xếp có thứ tự (ordered) các mục. Nghĩa là danh sách thay đổi được, lưu dữ liệu thứ tự cụ thể.
Mỗi phần tử danh sách gọi item, danh sách định nghĩa giá trị tách dấu phẩy trong ngoặc vuông ([]).
Cách tạo danh sách Python:
news_sites = ["New York Times", "Washington Post", "CNN", "BuzzFeed"]
In danh sách, dùng print():
print(news_sites)
Chương trình trả về mảng gốc định nghĩa:
['New York Times', 'Washington Post', 'CNN', 'BuzzFeed']
Truy xuất phần tử cụ thể Python list, tham chiếu chỉ mục (index) phần tử. Mỗi mục danh sách có số chỉ mục, bắt đầu 0, cho phép truy xuất nội dung phần tử riêng lẻ. Chỉ mục danh sách trên:
| New York Times | Washington Post | CNN | BuzzFeed |
| 0 | 1 | 2 | 3 |
Biết chỉ mục, truy xuất giá trị cụ thể. Dùng mã:
print(news_sites[0])
Mã trả về: New York Times. Tương tự, tham chiếu mục chỉ mục 2, trả CNN.
Mỗi mục cũng có chỉ mục âm. Cho phép đếm ngược danh sách, hữu ích danh sách nhiều giá trị muốn lấy giá trị cuối.
Chỉ mục âm danh sách trên:
| New York Times | Washington Post | CNN | BuzzFeed |
| -4 | -3 | -2 | -1 |
Muốn mục vị trí -1, dùng mã:
print(news_sites[-1])
Mã trả về: BuzzFeed.
Đã bao quát cơ bản Python list, bắt đầu khám phá phương thức list Python.
Thêm Phần Tử Dùng list.append()
list.append() thêm mục cuối danh sách. Ví dụ danh sách vị pizza:
flavors = ["Ham and Pineapple", "Cheese", "Mexican", "Chicken", "Pepperoni"]
Danh sách năm giá trị, chỉ mục 0 đến 4. Muốn thêm Meat-Lovers? Dùng append().
Ví dụ append() thêm Meat-Lovers:
flavors.append("Meat-Lovers")
print(flavors)
Mã trả về danh sách sửa Meat-Lovers cuối:
['Ham and Pineapple', 'Cheese', 'Mexican', 'Chicken', 'Pepperoni', 'Meat-Lovers']
Chèn Vào Danh Sách Dùng list.insert()
append() thêm cuối, nhưng muốn thêm vị trí chỉ mục cụ thể, insert() chèn mục bất kỳ vị trí danh sách.
Giả sử đầu bếp nấu đặc biệt ớt Jalapeno sẵn sàng thêm thực đơn. Đầu bếp muốn pizza đầu danh sách, khuyến khích khách mới thử.
Dùng insert() thực hiện. insert() nhận hai đối số: chỉ mục thêm mục và mục thêm. Ví dụ insert() thêm Jalapeno Special đầu danh sách:
flavors.insert(0, "Jalapeno Special") print(flavors)
Mã trả về danh sách:
['Jalapeno Special', 'Ham and Pineapple', 'Cheese', 'Mexican', 'Chicken', 'Pepperoni', 'Meat-Lovers']
Như thấy, Jalapeno Special thêm đầu, chỉ mục 0. Mục khác dịch lên, chỉ mục mới theo vị trí. Ham and Pineapple giờ chỉ mục 1, v.v.
Xóa Khỏi Danh Sách Dùng list.remove()
Xóa mục Python list, dùng list.remove(). Phương thức xóa mục đầu tiên giá trị bằng giá trị chỉ định.
Sau tuần thử Jalapeno Special, rõ khách không thích. Đầu bếp xóa thực đơn sửa công thức. Mã xóa Jalapeno Special:
flavors.remove("Jalapeno Special")
print(flavors)
Mã trả về danh sách sửa không Jalapeno Special:
['Ham and Pineapple', 'Cheese', 'Mexican', 'Chicken', 'Pepperoni', 'Meat-Lovers']
Vài điều remove(). Thứ nhất, xóa mục không tồn tại, lỗi not in list. Thứ hai, remove() chỉ xóa instance đầu tiên. Hai Jalapeno Specials, chạy remove() hai lần xóa cả hai.
Xóa Khỏi Danh Sách Dùng list.pop()
list.pop() xóa và trả về mục danh sách.
pop() nhận một đối số tùy chọn: chỉ mục phần tử xóa. Không chỉ định chỉ mục, pop() trả về và xóa mục cuối.
Nhà bếp quyết định Meat-Lovers chuyển thực đơn đặc biệt, bao gồm pizza thử nghiệm mới. Đầu bếp xóa Meat-Lovers danh sách vị.
Mã xóa Meat-Lovers (chỉ mục 5):
flavors = ["Ham and Pineapple", "Cheese", "Mexican", "Chicken", "Pepperoni", "Meat-Lovers"] print(flavors.pop(5)) print(flavors)
Mã trả về:
Meat-Lovers ['Ham and Pineapple', 'Cheese', 'Mexican', 'Chicken', 'Pepperoni']
Như thấy, pop() xóa giá trị chỉ định trả về giá trị mục xóa, là Meat-Lovers. Sau, in danh sách mới không Meat-Lovers.
Kết Hợp Nhiều Danh Sách Dùng list.extend()
list.extend() kết hợp nhiều danh sách Python. extend() nhận một đối số: đối tượng danh sách thêm danh sách hiện có.
Đầu bếp quyết định thực đơn đặc biệt gộp thực đơn tiêu chuẩn vì khách báo nhầm lẫn hai thực đơn riêng. Gộp thực đơn, mã:
flavors = ["Ham and Pineapple", "Cheese", "Mexican", "Chicken", "Pepperoni"] special_menu = ["Meat-Lovers", "BBQ Chicken", "Sausage and Pepperoni", "Vegetarian Special", "Greek"] flavors.extend(special_menu) print(flavors)
Chương trình trả về:
['Ham and Pineapple', 'Cheese', 'Mexican', 'Chicken', 'Pepperoni', 'Meat-Lovers', 'BBQ Chicken', 'Sausage and Pepperoni', 'Vegetarian Special', 'Greek']
Như thấy, flavors giờ bao gồm mục cả flavors cũ và special_menu.
Sao Chép Danh Sách Dùng list.copy()
list.copy() tạo bản sao danh sách. Hữu ích muốn thao tác danh sách nhưng giữ gốc nguyên vẹn, phòng cần tham chiếu lại.
Đầu bếp thử nghiệm thực đơn thêm, thêm hai pizza mới. Nhưng muốn giữ danh sách thực đơn gốc tham chiếu.
Mã tạo bản sao thực đơn, thêm pizza mới giữ gốc:
new_menu = menu.copy() print(menu)
Mã trả về:
['Ham and Pineapple', 'Cheese', 'Mexican', 'Chicken', 'Pepperoni', 'Meat-Lovers', 'BBQ Chicken', 'Sausage and Pepperoni', 'Vegetarian Special', 'Greek']
Giờ hai danh sách cùng giá trị: flavors và new_menu. Đầu bếp thay đổi new_menu, giữ flavors nguyên vẹn.
Sắp Xếp Danh Sách Dùng list.sort()
list.sort() sắp xếp mục danh sách.
Đầu bếp quyết định danh sách sắp xếp bảng chữ cái, dễ tìm pizza. Mã uses sort() sắp xếp bảng chữ cái:
flavors.sort() print(flavors)
Mã trả về:
['BBQ Chicken', 'Cheese', 'Chicken', 'Greek', 'Ham and Pineapple', 'Meat-Lovers', 'Mexican', 'Pepperoni', 'Sausage and Pepperoni', 'Vegetarian Special']
Cũng dùng sort() danh sách số, sắp xếp tăng dần.
Đảo Ngược Danh Sách Dùng list.reverse()
list.reverse() đảo ngược thứ tự mục danh sách.
Hàm không sắp xếp giảm dần mà lật thứ tự mọi mục. Mục cuối thành đầu, mục kế cuối thành thứ hai, v.v.
Đầu bếp muốn danh sách pizza giảm dần, vì nhận tăng bán từ cuối thực đơn. Mã đảo ngược:
flavors = ['BBQ Chicken', 'Cheese', 'Chicken', 'Greek', 'Ham and Pineapple', 'Meat-Lovers', 'Mexican', 'Pepperoni', 'Sausage and Pepperoni', 'Vegetarian Special'] flavors.reverse() print(flavors)
Mã trả về:
['Vegetarian Special', 'Sausage and Pepperoni', 'Pepperoni', 'Mexican', 'Meat-Lovers', 'Ham and Pineapple', 'Greek', 'Chicken', 'Cheese', 'BBQ Chicken']
Như thấy, Vegetarian Special cuối danh sách gốc, giờ đầu – danh sách đảo ngược.
Xóa Toàn Bộ Danh Sách Dùng list.clear()
list.clear() xóa tất cả giá trị trong danh sách.
Tháng mới đến nhà bếp, đầu bếp xóa danh sách bán tháng 1 bắt đầu mới tháng 2. Mã xóa sales:
sales.clear() print(sales)
Mã trả về danh sách không giá trị: [].
Kết Luận
Danh sách là sắp xếp có thứ tự, có thể thay đổi, lưu trữ dữ liệu tương tự. Hướng dẫn phân tích vài phương thức list Python phổ biến, thao tác danh sách và thu thập thông tin dữ liệu.
Chúng ta bao quát append(), insert(), remove(), pop(), extend(), copy(), sort(), reverse(), clear() list method, khám phá ví dụ mỗi phương thức.
Bây giờ bạn sẵn sàng làm việc Python list methods như chuyên gia!