Bài 7 – Kiểu dữ liệu từ điển (dict) trong ngôn ngữ lập trình Python
1. Tìm hiểu kiểu dữ liệu từ điển (dict)
– Kiểu từ điển là một dạng kiểu dữ liệu không tuần tự có cấu trúc dạng cặp <khóa>: <giá trị>
– Cấu trúc của kiểu dữ liệu từ điển như sau:
{<khóa 1>:<giá trị 1>, <khóa 2>:<giá trị 2>,…,<khóa n>:<giá trị n>}
Trong đó:
+ Phần <khóa> có thể là kiểu dữ liệu xâu, số, tuple nhưng không được là list
+ Phần <giá trị> có thể là kiểu dữ liệu bất kỳ như: số, xâu, tuple, list, từ điển hay tập hợp
– Ví dụ:
#1 Tạo biến d kiểu từ điển (rỗng)
d = {}
#2 Tạo biến d kiểu từ điển (rỗng)
d = dict()
#3 Tạo biến hs kiểu từ điển gồm 3 phần tử
hs = {“tên”:”Nguyễn Tiến Duy”, “giới tính” : “Nam”, “năm sinh” : 1989}
Khi đó: hs[“tên”] = “Nguyễn Tiến Duy”
hs[“giới tính”] = “Nam” và hs[“năm sinh”] = 1989
2. Thao tác với kiểu dữ liệu từ điển
– Tham chiếu đến từng phần tử: <tên biến>[<khóa>] trả về <giá trị> tương ứng với <khóa>
– Để biết được tất cả các <khóa> của biến từ điển ta dùng lệnh:
# Cách 1:
for <biến duyệt> in <biến kiểu từ điển>:
print(<biến duyệt>,end=“ “)
# Cách 2:
for <biến duyệt> in <biến kiểu từ điển>.keys():
print(<biến duyệt>,end=“ “)
– Để biết được tất cả các value của biến từ điển ta dùng lệnh:
for <biến duyệt> in <biến kiểu từ điển>.values():
print(<biến duyệt>,end=“ “)
– Để biết được tất cả key và value của biến từ điển ta dùng lệnh:
for <key>,<value> in <biến kiểu từ điển>.items():
print(<key>,<value>)
– Để cập nhật thông tin cho dữ liệu từ điển T1 từ từ điển T2, ta sử dụng lệnh: T1.update(T2)
Trong đó:
+ T2 là kiểu dữ liệu từ điển có giá trị khóa giống hoặc là một tập hợp con của khóa trên từ điển T1
+ Câu lệnh trên giống câu lệnh sau:
for <khóa> in T2: T1[<khóa>] = T2[<khóa>]
– Để truy cập đến giá trị của dữ liệu từ điển ta có thể sử dụng hàm get như sau:
<biến kiểu từ điển>.get(<khóa> [,<mặc định>])
Trong đó:
+ Nếu <khóa> nhập đúng thì hàm sẽ trả lại đúng giá trị của từ điển tương ứng.
+ Nếu <khóa> không đúng (không có) thì hàm sẽ trả về giá trị <mặc định>
+ Hàm get sẽ hữu ích hơn cách truy cập từng phần tử của từ điển dạng <biến kiểu từ điển>[<khóa>] trong trường hợp key không tồn tại trong <biến kiểu từ điển>.
– Xóa khóa và dữ liệu của từ điển:
+ Xóa khóa: del <biến kiểu từ điển>[<khóa>]
+ Xóa dữ liệu của từ điển: <biến kiểu từ điển>.clear()
Ví dụ: Viết chương trình nhập vào một xâu bất kỳ, xuất ra màn hình số lần lặp của các từ đơn trong xâu vừa nhập.
Chương trình:
s = input(“Mời nhập vào xâu bất kỳ: “)
A = s.split()
#Tách các từ riêng lẻ (cách nhau bởi dấu cách) thành mảng kiểu xâu
dic = {} #Tạo biến kiểu từ điển rỗng
for w in A: #Duyệt qua từng phần tử của mảng A
dic[w] = dic.get(w,0) + 1
#Nếu có khóa w thì tăng 1 đơn vị, không có thì thêm vào
for key in dic: print(key, dic[key]) #Xuất ra màn hình các từ với số lần lặp