Table of contents
Open Table of contents
1. Định nghĩa và tính chất
1.1. Định nghĩa
List ở trong Python được dùng để lưu trữ nhiều giá trị trong một biến duy nhất, mà vẫn có thể truy cập từng giá trị riêng lẻ.
Khác với các ngôn ngữ khác Python không yêu cầu các phần tử trong list phải cùng 1 kiểu dữ liệu.
Do đó, list có thể được cài đặt như sau:
list = [1, "hello", 3.14, True]
Một vài kiểu khai báo Python cho phép:
- Khai báo rỗng
list = [ ]
- Khai báo list chứa một list khác
list = ["aio", [1,2,3,4]]
Để xem số phần tử của list, ta dùng cú pháp:
list = ["aio", [1,2,3,4]]
len(list)
Kết quả:
2
1.2. Indexable
Có thể truy cập đến từng phần tử của list thông qua index, thông qua cú pháp
list[index]
Ví dụ:
my_list = [10, 20, 30, 40]
print(my_list[0])
print(my_list[-1])
Kết quả:
10
40
- Chỉ số 0 sẽ truy cập đến phần tử đầu tiên của mảng
- Chỉ số -1 sẽ truy cập đến phần tử cuối cùng của mảng
Index có thể âm dương là vì cơ chế foward index và backward index

1.3. Slicing
Slicing là thao tác để trích xuất một phần liên tục từ một list, bao gồm 3 yếu tố bắt bắt đầu từ đâu, kết thúc ở đâu, và bước nhảy
Cú pháp:
list[start:stop:step]
start: vị trí bắt đầu (bao gồm phần tử ở vị trí này),stop: vị trí kết thúc (không bao gồm phần tử này),step: khoảng cách giữa các chỉ số (mặc định là 1).
1.4. Method

Ở trên là các method được cài đặt sẵn của kiểu list.
1.4.1. append()
append() được sử dụng để thêm một phần tử mới vào cuối list.
Ví dụ:
data = [6,5,7,1,9,2]
print(data)
data.append(4)
print(data)
Kết quả:
[6,5,7,1,9,2]
[6,5,7,1,9,2,4]
1.4.2. insert()
insert() được sử dụng để thêm một phần tử vào index bất kì của list
Ví dụ:
data = [6, 5, 7, 1, 9, 2]
print(data)
data.insert(0, 4)
print(data)
Kết qủa:
[6, 5, 7, 1, 9, 2]
[4, 6, 5, 7, 1, 9, 2]
Giải thích:
- Chèn giá trị
4vào vị trí có chỉ số 0 (tức là vị trí đầu tiên trong danh sách)
1.4.3. extend()
extend() được sử dụng để mở rộng danh sách hiện tại bằng cách thêm tất cả các phần tử từ một iterable khác
Ví dụ:
a = [1, 2, 3]
b = [4, 5]
a.extend(b)
print(a)
Kết quả:
[1, 2, 3, 4, 5]
1.4.4. Xóa phần tử khỏi list với remove() và pop():
remove(): Xóa theo giá trị
Ví dụ:
fruits = ["apple", "banana", "cherry", "banana"]
fruits.remove("banana")
print(fruits)
Kết quả:
['apple', 'cherry', 'banana']
Giải thích:
- Dòng lệnh fruits.remove(“banana”) sẽ xóa “banana” đầu tiên trong list.
pop(): Xóa theo vị trí Ví dụ:
numbers = [10, 20, 30, 40]
removed = numbers.pop(2)
print(removed)
print(numbers)
Kết quả:
[10, 20, 40]
- Dòng
numbers.pop(2)xóa phần tử tại chỉ số 2 là30, biếnremovedsẽ nhận giá trị30.
1.4.5. Sử dụng del để xóa object và clear() để loại bỏ elements
Ví dụ:
a = [10, 20, 30, 40]
print(a)
del a[2]
print(a)
Kết quả:
[10, 20, 30, 40]
[10, 20, 40]
Ví dụ:
a = [1, 2, 3, 4]
print(a)
a.clear()
print(a)
Kết quả:
[1, 2, 3, 4]
[]
1.4.6. index()
index() được dùng để tìm vị trí (chỉ số) xuất hiện đầu tiên của một giá trị cụ thể trong danh sách.
Cú pháp:
list.index(x[, start[, end]])
x: Giá trị cần tìm trong danh sách.start(tùy chọn): Vị trí bắt đầu tìm (mặc định là 0).end(tùy chọn): Vị trí kết thúc tìm (mặc định là hết danh sách). Ví dụ:
fruits = ['apple', 'banana', 'cherry', 'banana']
print(fruits.index('banana'))
Kết quả:
1
1.4.7. reverse()
reverse() được dùng để đảo ngược thứ tự các phần tử trong danh sách ngay tại chỗ
Ví dụ:
numbers = [1, 2, 3, 4, 5]
numbers.reverse()
print(numbers)
Kết quả:
[5, 4, 3, 2, 1]
1.4.8. count()
count() dùng để đếm số lần xuất hiện của một phần tử cụ thể trong danh sách.
Ví dụ:
fruits = ['apple', 'banana', 'apple', 'orange', 'banana', 'apple']
print(fruits.count('apple'))
Kết quả:
3
1.4.9. copy()
copy() dùng để tạo một bản sao của một list. Lưu ý, hai danh sách nằm ở hai vùng nhớ khác nhau.
Ví dụ:
data = [6,5,7,1,9,2]
print(data)
data_copy = data.copy()
print(data_copy)
Kết quả:
[6,5,7,1,9,2]
[6,5,7,1,9,2]
1.4.10. sort()
sort() được dùng để sắp xếp các phần tử trong danh sách, tăng dần hoặc giảm dần
Ví dụ:
numbers = [3, 1, 4, 1, 5, 9, 2]
numbers.sort()
print(numbers)
numbers.sort(reverse=True)
print(numbers)
Kết quả:
[1, 1, 2, 3, 4, 5, 9]
[9, 5, 4, 3, 2, 1, 1]
1.4.11. Dấu + và -
Nối hai playlist:
data1 = [6, 5, 7]
data2 = [1, 9, 2]
data = data1 + data2 # nối 2 list (concatenate two lists)
print(data)
Kết qủa:
[6, 5, 7, 1, 9, 2]
Nhân list với một số nguyên:
data = [6, 5]
data_m = data * 3
print(data_m)
Kết quả:
[6, 5, 6, 5, 6, 5]
2. Built-in functions
sum(): Tính tổng các phần tử trong một iterable.
Ví dụ:
numbers = [1, 2, 3, 4]
result = sum(numbers) # 1 + 2 + 3 + 4 = 10
print(result)
Kết quả
10
zip(): Kết hợp các iterable lại với nhau theo từng cặp phần tử tương ứng
Ví dụ:
names = ["Alice", "Bob", "Charlie"]
scores = [85, 90, 95]
zipped = zip(names, scores)
print(list(zipped))
Kết quả:
[('Alice', 85), ('Bob', 90), ('Charlie', 95)]
reversed(): Trả về một iterator đảo ngược của một chuỗi, list, hoặc tuple.
Ví dụ:
numbers = [1, 2, 3, 4]
reversed_numbers = reversed(numbers)
print(list(reversed_numbers)
Kết quả:
[4, 3, 2, 1]
enumerate(): Gắn chỉ số (index) vào mỗi phần tử trong iterable.
Ví dụ:
fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits):
print(index, fruit)
Kết quả:
0 apple
1 banana
2 cherry