List trong Python: Tạo, thêm, xóa và các phương thức cần biết
Trong Python, List là một trong những kiểu dữ liệu quan trọng nhất mà bạn sẽ dùng hằng ngày. List cho phép lưu trữ nhiều giá trị trong một biến duy nhất, theo thứ tự có thể thay đổi.
Bài viết này hướng dẫn đầy đủ về List trong Python: từ cách tạo, thêm/xóa phần tử đến tất cả các phương thức quan trọng.
List trong Python là gì?
List là kiểu dữ liệu có thứ tự, có thể thay đổi (mutable) và cho phép giá trị trùng lặp. Bạn có thể lưu bất kỳ kiểu dữ liệu nào trong cùng một list.
# List các loại trái cây
fruits = ["táo", "chuối", "xoài", "cam"]
# List số nguyên
numbers = [1, 2, 3, 4, 5]
# List hỗn hợp – có thể chứa nhiều kiểu dữ liệu
mixed = [1, "hello", True, 3.14, None]
# List rỗng
empty = []
empty2 = list()
print(type(fruits)) # <class 'list'>
print(len(fruits)) # 4 (số phần tử)
Truy cập phần tử trong List
Python dùng index (chỉ số) để truy cập phần tử. Index bắt đầu từ 0.
fruits = ["táo", "chuối", "xoài", "cam"]
# Index dương (từ đầu)
print(fruits[0]) # "táo"
print(fruits[1]) # "chuối"
print(fruits[3]) # "cam"
# Index âm (từ cuối)
print(fruits[-1]) # "cam" (phần tử cuối)
print(fruits[-2]) # "xoài"
Slicing – Cắt List
nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(nums[2:5]) # [2, 3, 4]
print(nums[:3]) # [0, 1, 2] (từ đầu đến index 3)
print(nums[7:]) # [7, 8, 9] (từ index 7 đến cuối)
print(nums[::2]) # [0, 2, 4, 6, 8] (bước nhảy 2)
print(nums[::-1]) # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] (đảo ngược)
Thêm phần tử vào List
# append() – Thêm vào cuối
fruits = ["táo", "chuối"]
fruits.append("xoài")
print(fruits) # ["táo", "chuối", "xoài"]
# insert() – Thêm vào vị trí cụ thể
fruits.insert(1, "nho") # Thêm "nho" vào index 1
print(fruits) # ["táo", "nho", "chuối", "xoài"]
# extend() – Thêm nhiều phần tử
more = ["cam", "dứa", "ổi"]
fruits.extend(more)
print(fruits) # ["táo", "nho", "chuối", "xoài", "cam", "dứa", "ổi"]
Xóa phần tử khỏi List
# remove() – Xóa theo giá trị
fruits = ["táo", "chuối", "xoài", "chuối"]
fruits.remove("chuối") # Xóa lần xuất hiện đầu tiên
print(fruits) # ["táo", "xoài", "chuối"]
# pop() – Xóa theo index
fruits = ["táo", "chuối", "xoài"]
last = fruits.pop() # Xóa phần tử cuối, trả về "xoài"
first = fruits.pop(0) # Xóa phần tử đầu, trả về "táo"
# del – Xóa theo index
fruits = ["táo", "chuối", "xoài"]
del fruits[1]
print(fruits) # ["táo", "xoài"]
# clear() – Xóa tất cả
fruits.clear()
print(fruits) # []
Các phương thức List quan trọng khác
# sort() – Sắp xếp tại chỗ
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
numbers.sort() # Sắp xếp tăng dần
numbers.sort(reverse=True) # Sắp xếp giảm dần
# sorted() – Trả về list mới đã sắp xếp
original = [3, 1, 4, 1, 5]
sorted_list = sorted(original) # original không thay đổi
# reverse() – Đảo ngược list
fruits = ["táo", "chuối", "xoài"]
fruits.reverse()
print(fruits) # ["xoài", "chuối", "táo"]
# index() – Tìm vị trí phần tử
fruits = ["táo", "chuối", "xoài"]
print(fruits.index("chuối")) # 1
# count() – Đếm số lần xuất hiện
numbers = [1, 2, 3, 2, 1, 2]
print(numbers.count(2)) # 3
List Comprehension – Viết code ngắn gọn hơn
# Tạo list bình phương từ 1 đến 5
squares = [i ** 2 for i in range(1, 6)]
print(squares) # [1, 4, 9, 16, 25]
# Với điều kiện lọc
even_squares = [i ** 2 for i in range(1, 11) if i % 2 == 0]
print(even_squares) # [4, 16, 36, 64, 100]
# Biến đổi chuỗi
fruits = ["táo", "chuối", "xoài"]
upper_fruits = [f.upper() for f in fruits]
print(upper_fruits) # ["TÁO", "CHUỐI", "XOÀI"]
Bảng tổng hợp các phương thức List
| Phương thức | Mô tả | Ví dụ |
|---|---|---|
| append(x) | Thêm x vào cuối | lst.append(4) |
| insert(i, x) | Thêm x vào index i | lst.insert(1, 4) |
| extend(lst2) | Thêm tất cả từ lst2 | lst.extend([5,6]) |
| remove(x) | Xóa x (lần đầu) | lst.remove(4) |
| pop(i) | Xóa và trả về phần tử i | lst.pop(0) |
| clear() | Xóa tất cả | lst.clear() |
| index(x) | Tìm vị trí của x | lst.index(4) |
| count(x) | Đếm số lần x xuất hiện | lst.count(4) |
| sort() | Sắp xếp tại chỗ | lst.sort() |
| reverse() | Đảo ngược tại chỗ | lst.reverse() |
| copy() | Tạo bản sao | lst2 = lst.copy() |