Danh sách (List)
1. List là gì?
Phần tiêu đề “1. List là gì?”List là một cấu trúc dữ liệu cho phép chứa nhiều giá trị theo thứ tự, có thể thay đổi (mutable), và có thể chứa nhiều kiểu dữ liệu khác nhau.
Ví dụ list hợp lệ:
numbers = [1, 2, 3, 4] # Danh sách các sốmixed = [1, "hello", True, 3.14] # Danh sách chứa nhiều loại dữ liệunested = [1, [2, 3], 4] # Danh sách có thể chứa danh sách2. Cách tạo list
Phần tiêu đề “2. Cách tạo list”Tạo list bằng cặp ngoặc vuông
Phần tiêu đề “Tạo list bằng cặp ngoặc vuông”fruits = ["apple", "banana", "orange"]numbers = [1, 2, 3, 4, 5]friends = ["Tuệ Nghi", "Minh Sang", "Phước Sâm", "Bảo Nguyên", "Đức Sơn", "Bảo Đăng", "Hồng Phúc", "Gia Hưng", "Hoàng Thịnh", "Trọng Phát"]Tạo một list rỗng
Phần tiêu đề “Tạo một list rỗng”empty_list = []another_empty_list = list()Tạo list từ hàm range()
Phần tiêu đề “Tạo list từ hàm range()”numbers = list(range(5)) # [0, 1, 2, 3, 4]3. Các thao tác cơ bản trên list
Phần tiêu đề “3. Các thao tác cơ bản trên list”Lấy độ dài của list
Phần tiêu đề “Lấy độ dài của list”numbers = list(range(5)) # [0, 1, 2, 3, 4]len(numbers) # 5Kiểm tra một phần tử có trong list không
Phần tiêu đề “Kiểm tra một phần tử có trong list không”fruits = ["apple", "banana", "orange"]if "apple" in fruits: print("Yes")else: print("No")Nối 2 list
Phần tiêu đề “Nối 2 list”a = [1, 2]b = [3, 4]c = a + b # [1, 2, 3, 4]Lặp các phần tử trong list
Phần tiêu đề “Lặp các phần tử trong list”x = [0] * 5 # [0, 0, 0, 0, 0]Lấy một phần tử theo chỉ số (index)
Phần tiêu đề “Lấy một phần tử theo chỉ số (index)”fruits = ["apple", "banana", "orange"]fruits[0] # "apple"fruits[1] # "banana"Lấy phần tử cuối cùng của list
Phần tiêu đề “Lấy phần tử cuối cùng của list”fruits = ["apple", "banana", "orange"]
last_fruit = fruits[-1] # Cách 1: dùng index = -1last_fruit = fruits[len(fruits) - 1] # Cách 2: dùng lenLấy 1 phần của list (slicing)
Phần tiêu đề “Lấy 1 phần của list (slicing)”fruits = ["apple", "banana", "orange", "lemon"]
fruits[1:3] # ["banana", "orange"], lấy các phần tử từ index = 1 đến index < 3fruits[:2] # ["apple", "banana"], lấy các phần tử từ index = 0, đến index < 2fruits[::2] # ["apple", "orange"], lấy các phần tử từ index = 0, 2, 4, 6 ... (bước nhảy bằng 2)Thay đổi giá trị list
Phần tiêu đề “Thay đổi giá trị list”fruits = ["apple", "banana", "orange"]
fruits[1] = "mango" # fruits = ["apple", "mango", "orange"]fruits[1:3] = ["kiwi", "lemon"] # fruits = ["kiwi", "lemon", "organge"]4. Các hàm quan trọng của list
Phần tiêu đề “4. Các hàm quan trọng của list”| Method | Chức năng | Ví dụ |
|---|---|---|
append(x) |
Thêm phần tử vào cuối | numbers.append(10) |
insert(i, x) |
Thêm vào vị trí i | numbers.insert(1, 99) |
extend(list) |
Nối list | numbers.extend(b) |
remove(x) |
Xoá phần tử đầu tiên có giá trị x | numbers.remove(5) |
pop(i) |
Lấy và xoá phần tử tại i | numbers.pop(2) |
clear() |
Xoá toàn bộ list | numbers.clear() |
sort() |
Sắp xếp tăng dần | numbers.sort() |
reverse() |
Đảo ngược list | numbers.reverse() |
Ví dụ: numbers = [1, 2, 3, 4, 5]
Phần tiêu đề “Ví dụ: numbers = [1, 2, 3, 4, 5] ”1. append(x) - Thêm phần tử x vào cuối list
Phần tiêu đề “1. append(x) - Thêm phần tử x vào cuối list”numbers = [1, 2, 3, 4, 5]numbers.append(6)print(numbers) # [1, 2, 3, 4, 5, 6]2. insert(i, x) - Thêm phần tử vào vị trí i
Phần tiêu đề “2. insert(i, x) - Thêm phần tử vào vị trí i”numbers = [1, 2, 3, 4, 5]numbers.insert(2, 99) # chèn 99 vào vị trí index 2print(numbers) # [1, 2, 99, 3, 4, 5]3. extend(list2) - Nối list vào list hiện tại
Phần tiêu đề “3. extend(list2) - Nối list vào list hiện tại”numbers = [1, 2, 3, 4, 5]numbers.extend([6, 7])print(numbers) # [1, 2, 3, 4, 5, 6, 7]4. remove(x) - Xóa phần tử đầu tiên có giá trị x
Phần tiêu đề “4. remove(x) - Xóa phần tử đầu tiên có giá trị x”numbers = [1, 2, 3, 4, 5]numbers.remove(3)print(numbers) # [1, 2, 4, 5], số 3 đã bị xóa5. pop(i) - Lấy và xóa phần tử tại vị trí i
Phần tiêu đề “5. pop(i) - Lấy và xóa phần tử tại vị trí i”numbers = [1, 2, 3, 4, 5]x = numbers.pop(1) # xoá phần tử tại index 1print(x) # 2print(numbers) # [1, 3, 4, 5]Nếu không truyền vị trí thì phần tử cuối sẽ được lấy ra
numbers = [1, 2, 3, 4, 5]x = numbers.pop()print(x) # 5print(numbers) # [1, 2, 3, 4]6. clear() - Xóa toàn bộ list
Phần tiêu đề “6. clear() - Xóa toàn bộ list”numbers = [1, 2, 3, 4, 5]numbers.clear()print(numbers) # []7. sort() - Sắp xếp list tăng dần
Phần tiêu đề “7. sort() - Sắp xếp list tăng dần”numbers = [5, 1, 4, 2, 3]numbers.sort()print(numbers) # [1, 2, 3, 4, 5]Để sắp xếp giảm dần thì dùng reverse=True
numbers = [5, 1, 4, 2, 3]numbers.sort(reverse=True)print(numbers) # [5, 4, 3, 2, 1]8. reverse() - Đảo ngược thứ tự list
Phần tiêu đề “8. reverse() - Đảo ngược thứ tự list”numbers = [1, 2, 3, 4, 5]numbers.reverse()print(numbers) # [5, 4, 3, 2, 1]9. index(x) - Tìm vị trí/index của phần tử x trong list
Phần tiêu đề “9. index(x) - Tìm vị trí/index của phần tử x trong list”5. Duyệt list bằng vòng for
Phần tiêu đề “5. Duyệt list bằng vòng for ”5.1 - Duyệt qua từng phần tử
Phần tiêu đề “5.1 - Duyệt qua từng phần tử”Cú pháp:
for variable_name in list_name: # code dùng variable_nameVí dụ:
fruits = ["apple", "banana", "orange"]
for fruit in fruits: print(fruit)5.2 - Duyệt theo index
Phần tiêu đề “5.2 - Duyệt theo index ”Cú pháp:
for i in range(len(list_name)): # code dùng index iVí dụ:
for i in range(len(fruits)): print(i, fruits[i])6. Copy list
Phần tiêu đề “6. Copy list”Có 2 loại copy: shallow copy và deep copy (Dịch ra Tiếng Việt hơi không tự nhiên nên trong bài viết chúng ta giữ nguyên từ gốc).
6.1 - Shallow copy (Sẽ cập nhật sau)
Phần tiêu đề “6.1 - Shallow copy (Sẽ cập nhật sau)”6.2 - Deep copy (Sẽ cập nhật sau)
Phần tiêu đề “6.2 - Deep copy (Sẽ cập nhật sau)”📝 Bài tập thực hành
Phần tiêu đề “📝 Bài tập thực hành”Sau khi học xong bài này, hãy thực hành với các bài tập sau: