Có bốn kiểu dữ liệu tập hợp (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 cho phép chứa dữ liệu trùng lặp.
Nội dung chính
List
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.
Khởi tạo một list
list1 chứa các phần tử number, string và một list khác:
list1 = [1, 2, 3, 4, [5, 6, 7], "A", 'B'] print (list1) # --> [1, 2, 3, 4, [5, 6, 7], 'A', 'B'] print (type(list1)) # --> <class 'list'>
Các thao tác cơ bản với List:
Truy cập đến một phần tử trong list:
print(list1[3]) # --> 4
Gán giá trị mới cho một phần tử trong list:
list1[3] = 10 print (list1) # --> [1, 2, 3, 10, [5, 6, 7], 'A', 'B']
Lấy độ dài của list:
print(len(list1)) # --> 7
Thêm phần tử mới vào list:
list1.append("C") print (list1) # --> [1, 2, 3, 10, [5, 6, 7], 'A', 'B', 'C']
Gộp hai list:
list2 = ['apple', 'banana'] list1.extend(list2) print (list1) # --> [1, 2, 3, 10, [5, 6, 7], 'A', 'B', 'C', 'apple', 'banana']
Xóa một phần tử từ list:
list1.remove('B') print (list1) # --> [1, 2, 3, 10, [5, 6, 7], 'A', 'C', 'apple', 'banana']
Sắp xếp list:
list1 = [4, 3, 5, 2, 1, 6, 2] list1.sort() print (list1) # --> [1, 2, 2, 3, 4, 5, 6] list1.sort(reverse = True) print (list1) # --> [6, 5, 4, 3, 2, 2, 1]
Tuple
Kiểu dữ liệu Tuple trong python là một collection có thứ tự, không thể thay đổi. Cho phép chứa dữ liệu trùng lặp.
Tuple sử dụng các dấu ngoặc đơn, Không giống như List sử dụng các dấu ngoặc vuông. Các đối tượng trong tuple được phân biệt bởi dấu phảy và được bao quanh bởi dấu ngoặc đơn (). Giống như chỉ mục của chuỗi, chỉ mục của tuple bắt đầu từ 0.
Khởi tạo một Tuple
tuple1 = (1, 2, 3, 4, (5, 6, 7), "A", 'B') print (tuple1) # --> [1, 2, 3, 4, [5, 6, 7], 'A', 'B'] print (type(tuple1)) # --> <class 'tuple'>
Không thể thay đổi một phần tử của Tuple:
tuple1[3] = 10 # --> TypeError: 'tuple' object does not support item assignment
Không thể xoá phần tử trong Tuple:
del tuple1[3] # --> TypeError: 'tuple' object doesn't support item deletion
Đếm số lần xuất hiện của một phần tử trong Tuple:
print (tuple1.count('A')) #--> 1
Lấy ra vị trí index đầu tiên tìm được:
print (tuple1.index('A')) #--> 5
Set
Kiểu dữ liệu Set trong python 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.
Set trong Python được khai báo với các dấu ngoặc nhọn {}.
Khởi tạo một Set
set1 = {4, 3, 5, 2, 1, 6, 2} print (set1) # --> {1, 2, 3, 4, 5, 6}
Các thao tác cơ bản với Set:
Thêm một phần tử vào Set:
set1.add(100) print (set1) # --> {1, 2, 3, 4, 5, 6, 100}
Xoá một phần tử bằng pop:
set1.discard(100) print (set1) # --> {1, 2, 3, 4, 5, 6}
Dictionary
Kiểu dữ liệu Dictionary trong Python là một tập hợp các cặp key-value không có thứ tự, có thể thay đổi và lập chỉ mục (truy cập phần tử theo chỉ mục). Dictionary được khởi tạo với các dấu ngoặc nhọn {} và chúng có các khóa và giá trị (key-value). Mỗi cặp key-value được xem như là một item. Key mà đã truyền cho item đó phải là duy nhất, trong khi đó value có thể là bất kỳ kiểu giá trị nào. Key phải là một kiểu dữ liệu không thay đổi (immutable) như chuỗi, số hoặc tuple.
Key và value được phân biệt riêng rẽ bởi một dấu hai chấm (:). Các item phân biệt nhau bởi một dấu phảy (,). Các item khác nhau được bao quanh bên trong một cặp dấu ngoặc móc đơn tạo nên một Dictionary trong Python
Khởi tạo một Dictionary
dictCar = { "brand": "Honda", "model": "Honda Civic", "year": 1972 } print(dictCar) # --> {'brand': 'Honda', 'model': 'Honda Civic', 'year': 1972}
Các thao tác cơ bản với Dict:
Lấy các keys của Dict:
print(dictCar.keys()) # --> dict_keys(['brand', 'model', 'year'])
Lấy các values của Dict:
print(dictCar.values()) # --> dict_values(['Honda', 'Honda Civic', 1972])
Lấy các items của Dict:
print(dictCar.items()) # --> dict_items([('brand', 'Honda'), ('model', 'Honda Civic'), ('year', 1972)])
Truy cập bằng key:
print(dictCar['brand']) # --> Honda
Thêm một phần tử vào Dict:
dictCar['madeIn'] = 'Japan' print(dictCar) # --> {'brand': 'Honda', 'model': 'Honda Civic', 'year': 1972, 'madeIn': 'Japan'}
Xoá một phần tử:
dictCar.pop("model") print(dictCar) # --> {'brand': 'Honda', 'year': 1972}
Tổng kết
Phân biệt List, Tuple, Set, Dictionany trong Python được thể hiện trong bảng sau:
Có thứ tự: ở đây có nghĩa là các phần tử của collection giữ nguyên vị trí như lúc khởi tạo, điều đó có nghĩa là chúng ta có thể dùng chỉ mục (index) để truy cập các phần tử của collection.
Kiểu collection | Đặc trưng | Có thể thay đổi (Mutable) | Có thứ tự | Đặt trong dấu | Constructor |
---|---|---|---|---|---|
List | Chứa bất kì kiểu dữ liệu nào | x | x | [] | list() |
Tuple | Giá trị không thể thay đổi | x | () | tuple() | |
Set | Giá trị là duy nhất | x | {} | set() | |
Dict | Key: Value | x | {} | dict() |