Đictionary Python

Từ điển (Dictionary)

Từ điển là một tập hợp không thứ tự, có thể thay đổi và có chỉ số. Trong Python, từ điển được viết bằng dấu花 brace, có khóa và giá trị.

Thực thể

Tạo và in từ điển:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
print(thisdict)

Chạy mô hình

Truy cập vào phần tử

Bạn có thể truy cập vào phần tử của từ điển bằng cách tham chiếu đến tên khóa của nó trong dấu ngoặc kép:

Thực thể

Lấy giá trị của khóa "model":

x = thisdict["model"]

Chạy mô hình

Còn có một phương pháp gọi là get() Cách này sẽ cho bạn kết quả tương tự:

Thực thể

Lấy giá trị của khóa "model":

x = thisdict.get("model")

Chạy mô hình

Thay đổi giá trị

Bạn có thể thay đổi giá trị của phần tử cụ thể bằng cách tham chiếu đến tên khóa của nó:

Thực thể

Chuyển đổi "year" thành 2019:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
thisdict["year"] = 2019

Chạy mô hình

duyệt qua từ điển

Bạn có thể sử dụng for Duyệt qua từ điển.

Khi duyệt qua từ điển bằng vòng lặp, giá trị trả về là tên khóa của từ điển, nhưng cũng có phương pháp trả về giá trị.

Thực thể

In từng tên khóa trong từ điển một cách riêng lẻ:

for x in thisdict:
  print(x)

Chạy mô hình

Thực thể

In từng giá trị trong từ điển một cách riêng lẻ:

for x in thisdict:
  print(thisdict[x])

Chạy mô hình

Thực thể

Bạn cũng có thể sử dụng values() Hàm này trả về các giá trị của từ điển:

for x in thisdict.values():
  print(x)

Chạy mô hình

Thực thể

Bạn có thể duyệt qua khóa và giá trị bằng cách sử dụng hàm items():

for x, y in thisdict.items():
  print(x, y)

Chạy mô hình

Kiểm tra khóa có tồn tại hay không

Để xác định từ điển có chứa khóa cụ thể hay không, bạn hãy sử dụng: in Từ khóa:

Thực thể

Kiểm tra xem từ điển có chứa "model" hay không:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
if "model" in thisdict:
  print("Yes, 'model' is one of the keys in the thisdict dictionary")

Chạy mô hình

Độ dài từ điển

Để xác định từ điển có bao nhiêu phần tử (cặp khóa-giá trị), bạn hãy sử dụng: len() Phương pháp.

Thực thể

In số lượng phần tử trong từ điển:

print(len(thisdict))

Chạy mô hình

Thêm phần tử

Bạn có thể thêm phần tử vào từ điển bằng cách sử dụng khóa mới và gán giá trị cho nó:

Thực thể

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
thisdict["color"] = "red"
print(thisdict)

Chạy mô hình

Xóa phần tử

Có nhiều cách để xóa phần tử từ từ điển:

Thực thể

Phương pháp pop() xóa phần tử có tên khóa cụ thể:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
thisdict.pop("model")
print(thisdict)

Chạy mô hình

Thực thể

popitem() Phương pháp xóa phần tử thêm cuối cùng (trước phiên bản 3.7, xóa phần tử ngẫu nhiên):

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
thisdict.popitem()
print(thisdict)

Chạy mô hình

Thực thể

del Từ khóa xóa bỏ mục tiêu có tên khóa định sẵn:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
del thisdict["model"]
print(thisdict)

Chạy mô hình

Thực thể

del Từ khóa cũng có thể xóa hoàn toàn từ điển:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
del thisdict
print(thisdict) #this 会导致错误,因为 "thisdict" không còn tồn tại。

Chạy mô hình

Thực thể

clear() Từ khóa xóa sạch từ điển:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
thisdict.clear()
print(thisdict)

Chạy mô hình

sao chép từ điển

Bạn không thể sao chép từ điển bằng cách gõ dict2 = dict1 để sao chép từ điển, vì:dict2 chỉ là sao chép dict1 của tham chiếu, trong khi dict1 các thay đổi cũng sẽ tự động phản ánh trong dict2 trong đó.

Có một số phương thức để sao chép, một phương thức là sử dụng phương thức tích hợp của từ điển copy()

Thực thể

Sử dụng copy() phương thức để sao chép từ điển:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
mydict = thisdict.copy()
print(mydict)

Chạy mô hình

Một cách khác để tạo bản sao là sử dụng phương thức tích hợp dict()

Thực thể

Sử dụng dict() Phương thức tạo bản sao từ điển:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
mydict = dict(thisdict)
print(mydict)

Chạy mô hình

Từ điển đệm

Từ điển cũng có thể chứa nhiều từ điển, điều này được gọi là từ điển đệm.

Thực thể

Tạo từ điển chứa ba từ điển:

myfamily = {
  "child1" : {
    "name" : "Phoebe Adele",
    "year" : 2002
  },
  "child2" : {
    "name" : "Jennifer Katharine",
    "year" : 1996
  },
  "child3" : {
    "name" : "Rory John",
    "year" : 1999
  }
}

Chạy mô hình

Hoặc, nếu bạn muốn đệm ba từ điển đã tồn tại dưới dạng từ điển:

Thực thể

Tạo ba từ điển, sau đó tạo một từ điển chứa ba từ điển khác:

child1 = {
  "name" : "Phoebe Adele",
  "year" : 2002
}
child2 = {
  "name" : "Jennifer Katharine",
  "year" : 1996
}
child3 = {
  "name" : "Rory John",
  "year" : 1999
}
myfamily = {
  "child1" : child1,
  "child2" : child2,
  "child3" : child3
}

Chạy mô hình

hàm tạo dict()

Cũng có thể sử dụng dict() Hàm tạo tạo ra từ điển mới:

Thực thể

thisdict = dict(brand="Porsche", model="911", year=1963)
# Lưu ý, từ khóa không phải là chuỗi văn bản
# Lưu ý, đã sử dụng dấu bằng而不是 dấu hai chấm để gán giá trị
print(thisdict)

Chạy mô hình

Phương thức từ điển

Python cung cấp một nhóm phương thức nội bộ có thể sử dụng trên từ điển.

Phương thức Mô tả
clear() Xóa tất cả các phần tử trong từ điển
copy() Trả về bản sao từ điển
fromkeys() Trả về từ điển có khóa và giá trị chỉ định
get() Trả về giá trị của khóa chỉ định
items() Trả về danh sách các cặp khóa giá trị của mỗi khóa
keys() Trả về danh sách các khóa của từ điển
pop() Xóa phần tử có khóa chỉ định
popitem() Xóa cặp khóa giá trị được thêm cuối cùng
setdefault() Trả về giá trị của khóa chỉ định. Nếu khóa không tồn tại, thì thêm khóa có giá trị đã chỉ định.
update() Cập nhật từ điển bằng cách sử dụng cặp khóa giá trị đã chỉ định
values() Trả về danh sách tất cả các giá trị trong từ điển