Từ điển trong Python với Cú pháp & Ví dụ

Từ điển là gì Python?

A Từ điển trong Python là tập hợp các giá trị dữ liệu không có thứ tự và có thể thay đổi, chứa các cặp khóa-giá trị. Mỗi cặp khóa-giá trị trong từ điển ánh xạ khóa với giá trị liên kết của nó, giúp tối ưu hóa hơn. Từ điển trong python được khai báo bằng cách bao quanh danh sách các cặp khóa-giá trị được phân tách bằng dấu phẩy bằng dấu ngoặc nhọn ({}). Python Từ điển được phân thành hai thành phần: Khóa và Giá trị.

  • Chìa khóa sẽ là một phần tử duy nhất
  • Giá trị có thể là danh sách hoặc danh sách trong danh sách, số, v.v.

Cú pháp cho Python Từ điển

Dict = { ' Tim': 18,  xyz,.. }

Từ điển được liệt kê trong dấu ngoặc nhọn, bên trong dấu ngoặc nhọn này, các khóa và giá trị được khai báo. Mỗi khóa được phân tách khỏi giá trị của nó bằng dấu hai chấm (:), trong khi dấu phẩy phân tách từng phần tử.

Cú pháp cho Python Từ điển

Thuộc tính của khóa từ điển

Có hai điểm quan trọng khi sử dụng khóa từ điển

  • Không được phép có nhiều mục nhập cho mỗi khóa (không cho phép khóa trùng lặp)
  • Các giá trị trong từ điển có thể thuộc bất kỳ loại nào, trong khi các khóa phải bất biến như số, bộ dữ liệu
  • Các khóa từ điển có phân biệt chữ hoa chữ thường - Tên khóa giống nhau nhưng với các trường hợp khác nhau được coi là các khóa khác nhau trong Python từ điển.

Python 2 Ví dụ

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}   
print (Dict['Tiffany'])

Python 3 Ví dụ

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}   
print((Dict['Tiffany']))
  • Trong code, chúng ta có tên từ điển “Dict”
  • Chúng ta đã khai báo tên và tuổi của người đó trong từ điển, trong đó tên là “Keys” và tuổi là “value”
  • Bây giờ hãy chạy mã
  • Nó lấy tuổi của tiffany từ từ điển.

Python Phương pháp từ điển

Sao chép từ điển

Bạn cũng có thể sao chép toàn bộ từ điển sang một từ điển mới. Ví dụ: ở đây chúng tôi đã sao chép từ điển gốc của mình sang tên từ điển mới “Boys” và “Girls”.

Python 2 Ví dụ

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}	
studentX=Boys.copy()
studentY=Girls.copy()
print studentX
print studentY

Python 3 Ví dụ

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}	
studentX=Boys.copy()
studentY=Girls.copy()
print(studentX)
print(studentY)
  • Chúng ta có từ điển gốc (Dict) có tên và tuổi của bé trai và bé gái với nhau
  • Nhưng chúng tôi muốn danh sách con trai tách biệt khỏi danh sách con gái, vì vậy chúng tôi đã xác định thành phần con trai và con gái trong một từ điển riêng có tên “Con trai” và “Con gái”.
  • Bây giờ một lần nữa chúng ta đã tạo tên từ điển mới “sinh viên X” và “sinh viên Y”, trong đó tất cả các khóa và giá trị của từ điển nam sinh được sao chép vào sinh viên X và nữ sinh sẽ được sao chép vào sinh viênY
  • Vì vậy, bây giờ bạn không cần phải nhìn vào toàn bộ danh sách trong từ điển chính (Dict) để kiểm tra ai là con trai và ai là con gái, bạn chỉ cần in sinh viên X nếu bạn muốn danh sách con trai và Sinh viênY nếu bạn muốn danh sách con gái
  • Vì vậy, khi bạn chạy từ điển sinh viên X và sinh viênY, nó sẽ đưa ra tất cả các phần tử có trong từ điển “trai” và “cô gái” riêng biệt

Cập nhật từ điển

Bạn cũng có thể cập nhật từ điển bằng cách thêm mục nhập mới hoặc cặp khóa-giá trị vào mục nhập hiện có hoặc bằng cách xóa mục nhập hiện có. Trong ví dụ này, chúng tôi sẽ thêm một tên khác, “Sarah” vào từ điển hiện có của chúng tôi.

Python 2 Ví dụ

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
Dict.update({"Sarah":9})
print Dict

Python 3 Ví dụ

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
Dict.update({"Sarah":9})
print(Dict)
  • Từ điển “Dict” hiện tại của chúng tôi không có tên “Sarah”.
  • Chúng tôi sử dụng phương pháp Dict.update để thêm Sarah vào từ điển hiện có của chúng tôi
  • Bây giờ hãy chạy mã, nó sẽ thêm Sarah vào từ điển hiện có của chúng tôi

Xóa khóa khỏi từ điển

Python dictionary cho phép bạn tự do xóa bất kỳ phần tử nào khỏi danh sách dictionary. Giả sử bạn không muốn tên Charlie trong danh sách, bạn có thể xóa phần tử khóa bằng đoạn mã sau.

Python 2 Ví dụ

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
del Dict ['Charlie']
print Dict

Python 3 Ví dụ

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
del Dict ['Charlie']
print(Dict)

Khi bạn chạy mã này, nó sẽ in danh sách từ điển không có Charlie.

  • Chúng tôi đã sử dụng mã del Dict
  • Khi mã được thực thi, nó đã xóa Charlie khỏi từ điển chính

Mục từ điển() Phương thức

Phương thức items() trả về danh sách các cặp tuple (Khóa, Giá trị) trong từ điển.

Python 2 Ví dụ

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
print "Students Name: %s" % Dict.items()

Python 3 Ví dụ

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
print("Students Name: %s" % list(Dict.items()))
  • Chúng tôi sử dụng phương thức mã items() cho Dict.
  • Khi mã được thực thi, nó trả về danh sách các mục (khóa và giá trị) từ từ điển

Kiểm tra xem khóa đã cho đã tồn tại trong từ điển chưa

Đối với một danh sách nhất định, bạn cũng có thể kiểm tra xem từ điển con của chúng ta có tồn tại trong từ điển chính hay không. Ở đây chúng ta có hai từ điển phụ “Boys” và “Girls”, bây giờ chúng ta muốn kiểm tra xem từ điển Boys của chúng ta có tồn tại trong “Dict” chính hay không. Để làm được điều đó, chúng ta sử dụng phương thức vòng lặp for với phương thức else if.

Python 2 Ví dụ

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}
for key in Boys.keys():
    if key in Dict.keys():
        print True
    else:       
        print False


Python 3 Ví dụ

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}
for key in list(Boys.keys()):
    if key in list(Dict.keys()):
        print(True)
    else:       
        print(False)
  • Sản phẩm vòng lặp for trong mã kiểm tra từng khóa trong từ điển chính để tìm khóa Con trai
  • Nếu nó tồn tại trong từ điển chính, nó sẽ in true hoặc nếu không nó sẽ in false
  • Khi bạn thực thi mã, nó sẽ in “True” ba lần, vì chúng ta có ba phần tử trong từ điển “Boys”
  • Vì vậy, nó chỉ ra rằng “Boys” tồn tại trong từ điển chính của chúng tôi (Dict)

Sắp xếp từ điển

Trong từ điển, bạn cũng có thể sắp xếp các phần tử. Ví dụ: nếu chúng ta muốn in tên của các thành phần trong từ điển theo thứ tự bảng chữ cái, chúng ta phải sử dụng vòng lặp for. Nó sẽ sắp xếp từng thành phần của từ điển cho phù hợp.

Python 2 Ví dụ

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}
Students = Dict.keys()
Students.sort()
for S in Students:
      print":".join((S,str(Dict[S])))

Python 3 Ví dụ

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}
Students = list(Dict.keys())
Students.sort()
for S in Students:
      print(":".join((S,str(Dict[S]))))
  • Chúng ta đã khai báo biến sinh viên cho từ điển “Dict”.
  • Sau đó, chúng tôi sử dụng mã Students.sort để sắp xếp phần tử bên trong từ điển của chúng tôi
  • Nhưng để sắp xếp từng phần tử trong từ điển, chúng ta chạy vòng lặp for bằng cách khai báo biến S
  • Bây giờ, khi chúng ta thực thi mã, vòng lặp for sẽ gọi từng phần tử trong từ điển và nó sẽ in chuỗi và giá trị theo thứ tự

Python Chức năng tích hợp từ điển

Từ điển phương thức len()

Hàm len() cho biết số cặp trong từ điển.

Ví dụ,

Python 2 Ví dụ

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
print "Length : %d" % len (Dict)

Python 3 Ví dụ

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
print("Length : %d" % len (Dict))

Khi hàm len (Dict) được thực thi, nó sẽ cho kết quả là “4” vì có bốn phần tử trong từ điển của chúng ta

Các loại biến

Python không yêu cầu khai báo rõ ràng dung lượng bộ nhớ dự trữ; nó xảy ra tự động. Việc gán giá trị cho biến “=” dấu bằng được sử dụng. Mã để xác định loại biến là ” %type (Dict).”

Python 2 Ví dụ

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
print "variable Type: %s" %type (Dict)

Python 3 Ví dụ

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
print("variable Type: %s" %type (Dict))
  • Sử dụng mã %type để biết loại biến
  • Khi mã được thực thi, nó cho biết loại biến là từ điển

Python Liệt kê phương thức cmp()

Phương thức so sánh cmp() được sử dụng trong Python để so sánh giá trị và khóa của hai từ điển. Nếu phương thức trả về 0 nếu cả hai từ điển đều bằng nhau, 1 nếu dic1 > dict2 và -1 nếu dict1 < dict2.

Python 2 Ví dụ

Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}	
print cmp(Girls, Boys)

Python 3 Ví dụ

cmp is not supported in Python 3
  • Chúng tôi có hai tên từ điển, “Boys” và “Girls”.
  • Bất cứ điều gì bạn khai báo đầu tiên trong mã “cmp(Girls, Boys)” sẽ được coi là từ điển 1. Trong trường hợp của chúng tôi, chúng tôi đã khai báo “Girls” trước, vì vậy nó sẽ được coi là từ điển 1 và con trai là từ điển 2
  • Khi mã được thực thi, nó in ra -1, Nó cho biết từ điển 1 của chúng ta nhỏ hơn từ điển 2.

Từ điển Str(dict)

Với phương thức Str(), bạn có thể biến một từ điển thành định dạng chuỗi có thể in được.

Python 2 Ví dụ

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
print "printable string:%s" % str (Dict)

Python 3 Ví dụ

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
print("printable string:%s" % str (Dict))
  • Sử dụng mã % str (Dict)
  • Nó sẽ trả về các phần tử từ điển thành định dạng chuỗi có thể in được

Đây là danh sách tất cả các phương pháp từ điển

Phương pháp Mô tả cú pháp
copy () Sao chép toàn bộ từ điển sang từ điển mới dict.copy()
cập nhật () Cập nhật từ điển bằng cách thêm mục nhập mới hoặc cặp khóa-giá trị vào mục nhập hiện có hoặc bằng cách xóa mục nhập hiện có. Dict.update([other])
mặt hàng() Trả về danh sách các cặp tuple (Khóa, Giá trị) trong từ điển. từ điển.items()
sắp xếp () Bạn có thể sắp xếp các phần tử từ điển.sort()
len () Cung cấp số lượng cặp trong từ điển. len(dict)
cmp() So sánh giá trị và khóa của hai từ điển cmp(dict1, dict2)
Str() Biến từ điển thành định dạng chuỗi có thể in được Str(dict)

Hợp nhất từ ​​điển

Ở đây sẽ hiểu cách hợp nhất hai từ điển đã cho thành một từ điển duy nhất.

Tôi có hai từ điển như hình dưới đây:

Từ điển1 : my_dict1

my_dict1 = {"username": "XYZ", "email": "xyz@gmail.com", "location":"Mumbai"}

Từ điển 2 : my_dict2

my_dict2 = {"firstName" : "Nick", "lastName": "Price"}

Chúng ta hãy hợp nhất cả hai từ điển này my_dict1 và my_dict2 và tạo một từ điển duy nhất có namemy_dict.

Hợp nhất hai từ điển bằng phương thức update()

Phương thức update() sẽ giúp chúng ta hợp nhất một từ điển này với một từ điển khác. Trong ví dụ này, chúng tôi sẽ cập nhật my_dict1 bằng my_dict2. Sau khi sử dụng phương thức update() my_dict1 sẽ có nội dung của my_dict2 như dưới đây:

my_dict1 = {"username": "XYZ", "email": "xyz@gmail.com", "location":"Mumbai"}

my_dict2 = {"firstName" : "Nick", "lastName": "Price"}

my_dict1.update(my_dict2)

print(my_dict1)

Đầu ra:

{'username': 'XYZ', 'email': 'xyz@gmail.com', 'location': 'Mumbai', 'firstName': 'Nick', 'lastName': 'Price'}

Hợp nhất các từ điển bằng phương thức ** (Từ Python 3.5 trở đi)

** được gọi là Kwargs trong Python, và nó sẽ hoạt động với Python phiên bản 3.5+. Sử dụng **, chúng ta có thể hợp nhất hai từ điển và nó sẽ trả về từ điển đã hợp nhất. Việc sử dụng ** trước biến sẽ thay thế biến bằng tất cả nội dung của nó.

Đây là một ví dụ hoạt động về việc sử dụng ** để hợp nhất hai thư mục.

my_dict1 = {"username": "XYZ", "email": "xyz@gmail.com", "location":"Mumbai"}

my_dict2 = {"firstName" : "Nick", "lastName": "Price"}

my_dict =  {**my_dict1, **my_dict2} 

print(my_dict)

Đầu ra:

{'username': 'XYZ', 'email': 'xyz@gmail.com', 'location': 'Mumbai', 'firstName': 'Nick', 'lastName': 'Price'}

Kiểm tra tư cách thành viên từ điển

Bạn có thể kiểm tra xem một khóa hiện có có trong từ điển hay không. Việc kiểm tra này chỉ có thể được thực hiện trên khóa của từ điển chứ không phải giá trị. Việc kiểm tra tư cách thành viên được thực hiện bằng cách sử dụng in từ khóa. Khi bạn kiểm tra khóa trong từ điển bằng cách sử dụng in từ khóa, biểu thức trả về true nếu có khóa và sai nếu không có.

Dưới đây là ví dụ hiển thị bài kiểm tra nhóm thành viên trên từ điển.

my_dict = {"username": "XYZ", "email": "xyz@gmail.com", "location":"Mumbai"}
print("email" in my_dict)
print("location" in my_dict)
print("test" in my_dict)

Đầu ra:

True
True
False

Tổng kết

  • Từ điển trong ngôn ngữ lập trình là một loại cấu trúc dữ liệu dùng để lưu trữ thông tin được kết nối theo một cách nào đó.
  • Python Từ điển được định nghĩa thành hai phần tử Keys và Values.
  • Từ điển không lưu trữ thông tin theo bất kỳ thứ tự cụ thể nào, vì vậy bạn có thể không nhận được thông tin của mình theo đúng thứ tự bạn đã nhập.
  • Chìa khóa sẽ là một phần tử duy nhất
  • Giá trị có thể là danh sách hoặc danh sách trong danh sách, số, v.v.
  • Không được phép có nhiều mục nhập cho mỗi khóa (không cho phép khóa trùng lặp)
  • Các giá trị trong từ điển có thể thuộc bất kỳ loại nào, trong khi các khóa phải không thay đổi như số, bộ dữ liệu hoặc chuỗi.
  • Các khóa từ điển có phân biệt chữ hoa chữ thường - Tên khóa giống nhau nhưng với các trường hợp khác nhau được coi là các khóa khác nhau trong Python từ điển.