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

⚡ Tóm tắt thông minh

Từ điển trong Python Từ điển là một tập hợp không có thứ tự các cặp khóa-giá trị được viết trong dấu ngoặc nhọn. Các ví dụ dưới đây bao gồm việc tạo từ điển, truy cập, cập nhật và xóa các phần tử, các phương thức tích hợp sẵn và các thuộc tính của khóa từ điển.

  • 🗂️ Định nghĩa: Từ điển lưu trữ dữ liệu dưới dạng các cặp khóa-giá trị bên trong dấu ngoặc nhọn.
  • 🔑 Phím: Khóa phải là duy nhất và không thể thay đổi; giá trị có thể lặp lại.
  • Cập nhật: Thêm hoặc thay đổi các mục bằng cách gán giá trị cho một khóa.
  • 🗑️ Xóa bỏ: Xóa các mục bằng phương thức del hoặc pop().
  • 🛠️ Phương pháp: Các phương thức tích hợp sẵn như keys(), values() và items() giúp bạn làm việc với từ điển.
  • Tra cứu nhanh: Từ điển cho phép truy cập nhanh vào các giá trị dựa trên khóa của chúng.

Từ điển trong Python

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)
  • 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ả Chi tiế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

Câu Hỏi Thường Gặp

Từ điển lưu trữ dữ liệu dưới dạng các cặp khóa-giá trị được truy cập bằng khóa, trong khi danh sách lưu trữ các mục được sắp xếp theo thứ tự được truy cập bằng chỉ mục số. Sử dụng từ điển cho việc tra cứu có nhãn và danh sách cho các chuỗi được sắp xếp theo thứ tự.

Không. Các khóa trong từ điển phải là duy nhất. Nếu bạn gán một giá trị cho một khóa hiện có, giá trị mới sẽ thay thế giá trị cũ. Tuy nhiên, các giá trị có thể lặp lại tự do giữa các khóa khác nhau.

từ Python 3.7, từ điển giữ nguyên thứ tự chèn, vì vậy các mục được trả về theo thứ tự bạn đã thêm chúng. Các phiên bản trước đó không đảm bảo điều này, vì vậy mã cũ không nên dựa vào thứ tự.

Sử dụng vòng lặp for. Looping Việc truy cập trực tiếp vào từ điển sẽ cung cấp các khóa; hãy sử dụng .values() để đọc các giá trị và .items() để tách các cặp khóa-giá trị, như trong: for key, value in my_dict.items().

Một biểu thức tạo từ điển xây dựng một từ điển trong một dòng từ một đối tượng có thể lặp lại, sử dụng cú pháp {khóa: giá trị cho mục trong đối tượng có thể lặp lại}. Ví dụ: {x: x*x cho x trong phạm vi (5)} xây dựng một từ điển bình phương.

Từ điển lưu trữ các thiết lập cấu hình, siêu tham số, số lượng từ và bản đồ tính năng.pingNhiều thư viện trả về kết quả dưới dạng từ điển, và JSON được tải trực tiếp vào chúng, khiến chúng trở thành công cụ trung tâm để tổ chức dữ liệu được gắn nhãn trong trí tuệ nhân tạo và học máy.

Đúng vậy. Trợ lý AI có thể chuyển đổi các hàng trong CSV, JSON hoặc văn bản thuần túy thành mã từ điển sẵn sàng sử dụng và đề xuất cấu trúc khóa hợp lý. Chúng cũng giúp định hình lại từ điển và gỡ lỗi các lỗi khóa một cách nhanh chóng.

Đúng vậy. GitHub Copilot có thể tạo ra các chuỗi ký tự từ điển, biểu thức hiểu và tra cứu từ một bình luận hoặc tên hàm, trong khi các công cụ tác nhân sẽ tái cấu trúc mã lặp lại thành từ điển. Luôn luôn xem xét các đề xuất để đảm bảo khóa chính xác và các trường hợp ngoại lệ.

Tóm tắt bài viết này với: