1. Dict trong Python

Kiểu Dict trong Python là tập hợp các phần tử có thứ tự được sử dụng và lưu trữ theo dạng các cặp phần tử key: value

Kể từ phiên bản Python 3.7 đến các phiên bản Python gần đây, kiểu Dict trong Python được chỉnh sửa thành một kiểu có thứ tự, các phần tử trong Dict có thể thay đổi và Dict không cho phép các phần tử trùng lặp.

Để tạo một Dict trong Python, ta sẽ khai báo hai dấu ngoặc nhọn “{}” và các phần tử biểu diễn theo cặp key: value như bên dưới:

# Khai bao dict 
dictA =	{
  "ho ten": "Nguyen Van A",
  "que quan": "Ha Noi",
  "nam sinh": 2002
}

# Hien thi cac phan tu trong dict
print(dictA)

Kết quả:

{‘ho ten’: ‘Nguyen Van A’, ‘que quan’: ‘Ha Noi’, ‘nam sinh’: 2002}

Kiểu Dict không cho phép các giá trị trùng lặp, vì vậy khi tồn tại giá trị trùng lặp trong Dict thì giá trị đó sẽ bị bỏ qua. Ví dụ dưới đây có 2 phần tử trùng lặp là “nam sinh : 2002” trong Dict, tuy nhiên các giá trị trùng lặp này sẽ bị bỏ qua:

# Khai bao dict co phan tu trung lap
dictA =	{
  "ho ten": "Nguyen Van A",
  "nam sinh" : 2002,
  "que quan": "Ha Noi",
  "nam sinh": 2002
}

# Hien thi cac phan tu trong dict
print(dictA)

Kết quả:

{‘ho ten’: ‘Nguyen Van A’, ‘nam sinh’: 2002, ‘que quan’: ‘Ha Noi’}

Một Dict trong Python có thể chứa nhiều kiểu dữ liệu khác nhau, ví dụ dưới đây khai báo một Set chứa các phần tử mang các kiểu dữ liệu: int, float, string, boolean, list

# Khai bao dict gom cac phan tu co kieu du lieu khac nhau
dictA =	{
  "ho ten": "Nguyen Van A",
  "doc than" : True,
  "que quan": "Ha Noi",
  "nam sinh": 2002,
  "yeu thich": ['xanh', 'do', 'vang']
}

# Hien thi cac phan tu trong dict
print(dictA)

Kết quả:

{‘ho ten’: ‘Nguyen Van A’, ‘doc than’: True, ‘que quan’: ‘Ha Noi’, ‘nam sinh’: 2002, ‘yeu thich’: [‘xanh’, ‘do’, ‘vang’]}

2. Dict lồng nhau trong Python

Phần trên ta đã khai báo một Dict bao gồm nhiều phần tử và các phần tử mang nhiều kiểu dữ liệu khác nhau trong Python. Tuy nhiên, nếu trong một Dict tồn tại các phần tử cũng mang chính kiểu <class ‘dict’> thì khi đó Dict này được gọi là lồng nhau.

Ví dụ dưới dây, tao một dictA bao gồm các phần tử mang chính kiểu <class ‘dict’>. Khi đó dictA được gọi là lồng nhau:

# Khai bao dict long nhau
dictA = {
  "connguoi1" : {
    "ho ten" : "Nguyen Van A",
    "que quan" : "Ha Noi",
    "nam sinh" : 2002
  },
  "connguoi2" : {
    "ho ten" : "Nguyen Van B",
    "que quan" : "Hai Phong",
    "nam sinh" : 1999
  },
  "connguoi3" : {
    "ho ten" : "Nguyen Van C",
    "que quan" : "Ho Chi Minh",
    "nam sinh" : 1989
  }
}

# Hien thi dict
print(dictA)

Để khai báo một Dict lồng nhau sao cho dễ hình dung, bạn có thể khai báo thành 3 dict khác nhau sau đó đưa tất cả chúng vào trong DictA như sau:

# Khai bao cac dict connguoi1, connguoi2, connguoi3
connguoi1 = {
  "ho ten" : "Nguyen Van A",
  "que quan" : "Ha Noi",
  "nam sinh" : 2002
}

connguoi2 = {
  "ho ten" : "Nguyen Van B",
  "que quan" : "Hai Phong",
  "nam sinh" : 1999
}

connguoi3 = {
  "ho ten" : "Nguyen Van C",
  "que quan" : "Ho Chi Minh",
  "nam sinh" : 1989
}

# Them phan tu vao dictA
dictA = {
  "connguoi1" : connguoi1,
  "connguoi2" : connguoi2,
  "connguoi3" : connguoi3
}

# Hien thi dict
print(dictA)

Kết quả:

{‘connguoi1’: {‘ho ten’: ‘Nguyen Van A’, ‘que quan’: ‘Ha Noi’, ‘nam sinh’: 2002}, ‘connguoi2’: {‘ho ten’: ‘Nguyen Van B’, ‘que quan’: ‘Hai Phong’, ‘nam sinh’: 1999}, ‘connguoi3’: {‘ho ten’: ‘Nguyen Van C’, ‘que quan’: ‘Ho Chi Minh’, ‘nam sinh’: 1989}}

3. Kiểm tra Dict trong Python

Trong kiểu Dict trong Python, chúng ta có thể kiểm tra số lượng phần tử (hay độ dài) có trong Dict và kiểm tra kiểu dữ liệu của một Dict.

Để thực hiện kiểm tra số lượng phần tử có trong Dict, ta sẽ sử dụng hàm có sẵn len() và để kiểm tra kiểu dữ liệu của một Dict có chính xác là <class ‘dict’> hay không ta sẽ cần sử dụng hàm có sẵn type() trong Python.

Ví dụ sử dụng hàm len() để kiểm tra độ dài của Dict như sau:

# Khai bao dict gom cac phan tu co kieu du lieu khac nhau
dictA =	{
  "ho ten": "Nguyen Van A",
  "doc than" : True,
  "que quan": "Ha Noi",
  "nam sinh": 2002,
  "yeu thich": ['xanh', 'do', 'vang']
}

# Khai bao bien do dai
length = len(dictA)

# Hien thi do dai cua dict
print(length)

Kết quả:

5

Chú ý: Độ dài của Dict được tính bằng số lượng phần tử (là các cặp key : value) trong Dict.

Ví dụ tiếp theo đây sử dụng hàm type() để kiểm tra kiểu dữ liệu của một Dict trong Python như sau:

# Khai bao dict gom cac phan tu co kieu du lieu khac nhau
dictA =	{
  "ho ten": "Nguyen Van A",
  "doc than" : True,
  "que quan": "Ha Noi",
  "nam sinh": 2002,
  "yeu thich": ['xanh', 'do', 'vang']
}

# Khai bao bien chua kieu du lieu cua dict tren
typ = type(dictA)

# Hien thi kieu du lieu
print(typ)

Kết quả:

<class ‘dict’>

4. Một số phương thức của Dict trong Python

Python đã xây dựng sẵn một số phương thức để thao tác tiện lợi và nhanh gọn hơn với kiểu Dict. Dưới đây là các phương thức thường được sử dụng khi thao tác với Dict.

Phương thức Mô tả
clear() Xóa tất cả các phần tử khỏi Dict
copy() Trả về một Dict được sao chép
fromkeys() Tạo một Dict mới từ dãy key và value.
get() Trả về giá trị của khóa được chỉ định
items() Hiển thị tất cả các phần tử Dict dưới dạng một Tuple
keys() Trả về tất cả các key của một Dict.
pop() Loại bỏ phần tử có key được chỉ định trong Dict
popitem() Xóa cặp phần tử cuối cùng trong Dict
setdefault() Trả về giá trị theo key được chỉ định. Nếu key không tồn tại sẽ tự động chèn key và value được chỉ định vào Dict
update() Cập nhật phần tử Dict với các cặp key và value được chỉ định
values() Trả về tất cả các value của một Dict.

Trong những bài sau, chúng ta sẽ cùng nhau tìm hiểu và sử dụng rõ hơn về các phương thức thao tác với Dict được nêu ở bảng trên!