Nội dung chính
Python Collections (Arrays)
Có bốn kiểu dữ liệu collection trong ngôn ngữ lập trình Python:
- List : là một collection có thứ tự, có thể thay đổi. Cho phép chứa dữ liệu trùng lặp.
- Tuple : là một collection có thứ tự, không thể thay đổi. Cho phép chứa dữ liệu trùng lặp.
- Set : là một collection không có thứ tự, không có chỉ mục. Không cho phép chứa dữ liệu trùng lặp.
- Dictionary : là một collection không có thứ tự, có thể thay đổi và lập chỉ mục. Không có thành viên trùng lặp.
Kiểu dữ liệu List trong Python
Kiểu dữ liệu List trong Python là một collection lưu trữ các phần tử theo tứ tự đã cho, có thể thay đổi. Cho phép chứa dữ liệu trùng lặp. List có cấu trúc dữ liệu mà có khả năng lưu giữ các kiểu dữ liệu khác nhau.
List trong Python được viết với dấu ngoặc vuông [].
Tương tự như chỉ mục của chuỗi, chỉ mục của List bắt đầu từ 0.
Ví dụ:
list1 = ['java', 'python', 1997, 2000]; list2 = [1, 2, 3, 4, 5 ]; list3 = ["a", "b", "c", "d"];
Truy cập các phần tử của List trong Python
Để truy cập các phần tử trong List, bạn sử dụng cú pháp sau:
list1 = ['java', 'python', 'php', 'c++'] print(list1[1])
Kết quả:
python
Chỉ mục âm
Lập chỉ mục âm có nghĩa là bắt đầu từ cuối, -1 đề cập đến mục cuối cùng, -2 đề cập đến mục cuối cùng thứ hai, v.v. Ví dụ:
list1 = ['java', 'python', 'php', 'c++'] print(list1[-1])
Kết quả:
c++
Phạm vi chỉ mục
Bạn có thể chỉ định một phạm vi chỉ mục bằng cách chỉ định nơi bắt đầu và nơi kết thúc phạm vi.
Khi chỉ định một phạm vi, giá trị trả về sẽ là một List mới với các mục được chỉ định.
Ví dụ 1: Trả lại mục thứ ba, thứ tư và thứ năm:
fruits = ["apple", "banana", "guava", "orange", "kiwi", "melon", "mango"] print(fruits[2:5])
Kết quả:
['guava', 'orange', 'kiwi']
Ví dụ 2: Bằng cách loại bỏ giá trị bắt đầu, phạm vi sẽ bắt đầu ở mục đầu tiên:
fruits = ["apple", "banana", "guava", "orange", "kiwi", "melon", "mango"] print(fruits[:4])
Kết quả:
['apple', 'banana', 'guava', 'orange']
Ví dụ 3: Bằng cách loại bỏ giá trị cuối, phạm vi sẽ đi đến cuối danh sách:
fruits = ["apple", "banana", "guava", "orange", "kiwi", "melon", "mango"] print(fruits[3:])
Kết quả:
['orange', 'kiwi', 'melon', 'mango']
Phạm vi của các chỉ mục âm
Chỉ định các chỉ mục âm nếu bạn muốn bắt đầu tìm kiếm từ cuối danh sách:
Ví dụ 1: trả về các mục từ chỉ mục -4 (bao gồm) đến chỉ mục -1 (không bao gồm):
fruits = ["apple", "banana", "guava", "orange", "kiwi", "melon", "mango"] print(fruits[-4:-1])
Kết quả:
['orange', 'kiwi', 'melon']
Các hoạt động cơ bản trên List trong Python
Bạn có thể thực hiện các hoạt động nối 2 list với toán tử + hoặc hoạt động lặp với * như trong các chuỗi. Điểm khác biệt là ở đây nó tạo một List mới, không phải là một chuỗi.
Thay đổi giá trị của item
Để thay đổi giá trị của một item được chỉ định, ta dùng chỉ số và toán tử gán =, ví dụ:
fruits = ["apple", "banana", "guava"] fruits[1] = "*orange*" print(fruits)
Kết quả:
['apple', '*orange*', 'guava']
Duyệt các phần tử của một list
Bạn có thể duyệt các phần tử của một list bằng cách sử dụng vòng lặp for . Ví dụ:
fruits = ["apple", "banana", "guava"] for x in fruits: print(x)
Kết quả:
apple banana guava
Kiểm tra sự tồn tại của một Item trong list
Sử dụng từ khóa in để kiểm tra sử tồn tại của một item trong một list trong Python. Ví dụ:
fruits = ["apple", "banana", "guava"]; x = "banana" in fruits; if (x == True): print("\"banana\" co ton tai trong list"); else: print("\"banana\" khong ton tai trong list");
Kết quả:
"banana" co ton tai trong list
Độ dài của một list trong Python
Để xác định danh sách có bao nhiêu item, bạn có thể sử dụng hàm len():
fruits = ["apple", "banana", "guava"]; print("So item cua list fruts la: ", len(fruits));
Kết quả:
So item cua list fruts la: 3
Thêm phần tử tới List trong Python
Để thêm một item (phần tử) vào cuối danh sách, hãy sử dụng phương thức append():
fruits = ["apple", "banana", "guava"]; fruits.append("kiwi"); print(fruits);
Kết quả:
['apple', 'banana', 'guava', 'kiwi']
Để thêm item tại chỉ mục đã chỉ định, hãy sử dụng phương thức insert():
fruits = ["apple", "banana", "guava"]; fruits.insert(2, "kiwi"); print(fruits);
Kết quả:
['apple', 'banana', 'kiwi', 'guava']
Xóa phần tử khỏi list trong Python
Có một số phương pháp để xóa các phần tử khỏi một list như sau:
Xóa phần tử bằng phương thức remove()
fruits = ["apple", "banana", "guava"]; fruits.remove("banana") print(fruits);
Kết quả:
['apple', 'guava']
Xóa phần tử bằng phương thức pop()
Phương thức pop() xóa phần tử cuối cùng của list:
fruits = ["apple", "banana", "guava"]; fruits.pop(); print(fruits);
Kết quả:
['apple', 'banana']
Xóa phần tử bằng lệnh del
Lệnh del được sử dụng để xóa phần tử có chỉ mục cụ thể:
fruits = ["apple", "banana", "guava"]; del fruits[0] print(fruits);
Kết quả:
['banana', 'guava']
Xóa phần tử bằng phương thức clear()
fruits = ["apple", "banana", "guava"]; fruits.clear() print(fruits);
Kết quả:
[]
Copy list trong Python
Bạn không thể copy list chỉ bằng cách nhập list2 = list1, bởi vì: list2 sẽ chỉ là một tham chiếu đến list1 và những thay đổi trong list1 cũng sẽ tự động được thực hiện trong list2.
Để copy list, python cung cấp phương thức copy().
fruits = ["apple", "banana", "guava"]; listCopy1 = fruits; listCopy2 = fruits.copy(); fruits.append("kiwi"); # thay doi list ban dau print("Bi thay doi theo list ban dau: ", listCopy1); print("Khong bi thay doi theo list ban dau:", listCopy2);
Kết quả:
Bi thay doi theo list ban dau: ['apple', 'banana', 'guava', 'kiwi'] Khong bi thay doi theo list ban dau: ['apple', 'banana', 'guava']
Một cách khác để tạo một bản sao là sử dụng phương thức tích hợp sẵn list().
fruits = ["apple", "banana", "guava"]; listCopy1 = fruits; listCopy2 = list(fruits) fruits.append("kiwi"); # thay doi list ban dau print("Bi thay doi theo list ban dau: ", listCopy1); print("Khong bi thay doi theo list ban dau:", listCopy2);
Kết quả:
Bi thay doi theo list ban dau: ['apple', 'banana', 'guava', 'kiwi'] Khong bi thay doi theo list ban dau: ['apple', 'banana', 'guava']
Nối 2 list trong Python
Một trong những cách dễ nhất để nối 2 list là sử dụng toán tử +.
list1 = ["a", "b" , "c"] list2 = [1, 2, 3] list3 = list1 + list2 print(list3)
Kết quả:
['a', 'b', 'c', 1, 2, 3]
Hoặc bạn cũng có thể duyệt từng phần tử của một list và sử dụng hàm append() để nối vào cuối của list thứ 2.
list1 = ["a", "b" , "c"] list2 = [1, 2, 3] for x in list2: list1.append(x) print(list1)
Kết quả:
['a', 'b', 'c', 1, 2, 3]
Constructor List()
Bạn có thể sử dụng constructor list() để tạo một danh sách mới. Ví dụ:
fruits = list(("apple", "banana", "guava")); print(fruits)
Kết quả:
['apple', 'banana', 'guava']
Lưu ý trong ví dụ trên sử dụng 2 dấu ngoặc đơn ((, giống như bạn chuyển đổi một dictionary thành một list.
Các phương thức xử lý List trong Python
Ngoài các phương thức kể trên, Python còn xây dựng sẵn rất nhiều hàm và phương thức để bạn có thể sử dụng khi làm việc với List. Bảng dưới đây liệt kê các phương thức này. Bạn truy cập link để thấy ví dụ chi tiết.
Danh sách các hàm xử lý List trong Python:
STT | Hàm và Miêu tả |
---|---|
1 | Hàm len(list) Trả về độ dài của list |
2 | Hàm max(list) Trả về phần tử có giá trị lớn nhất trong list |
3 | Hàm min(list) Trả về phần tử có giá trị nhỏ nhất trong list |
4 | Hàm list(seq) Chuyển đổi một tuple thành list |
Danh sách các phương thức xử lý List trong Python:
STT | Hàm và Miêu tả |
---|---|
1 | Hàm list.append(obj) Phụ thêm đối tượng obj vào cuối list |
2 | Hàm list.count(obj) Đếm xem có bao nhiêu lần mà obj xuất hiện trong list |
3 | Hàm list.extend(seq) Phụ thêm các nội dung của seq vào cuối list |
4 | Hàm list.index(obj) Trả về chỉ mục thấp nhất trong list mà tại đó obj xuất hiện |
5 | Hàm list.insert(index, obj) Chèn đối tượng obj vào trong list tại index đã cho |
6 | Hàm list.pop(obj=list[-1]) Xóa và trả về phần tử cuối cùng hoặc đối tượng obj có chỉ mục đã cung cấp từ list đã cho |
7 | Hàm list.remove(obj) Xóa đối tượng obj từ list |
8 | Hàm list.reverse() Đảo ngược thứ tự các đối tượng trong list |
9 | Hàm list.sort([func]) Sắp xếp các đối tượng của list, sử dụng hàm so sánh nếu được cung cấp |