Python - Từ điển

Trong Từ điển, mỗi khóa được phân tách khỏi giá trị của nó bằng dấu hai chấm (:), các mục được phân tách bằng dấu phẩy và toàn bộ khóa được đặt trong dấu ngoặc nhọn. Một từ điển trống không có bất kỳ mục nào được viết chỉ bằng hai dấu ngoặc nhọn, như sau: {}.

Các khóa là duy nhất trong từ điển trong khi các giá trị có thể không. Các giá trị của từ điển có thể thuộc bất kỳ kiểu nào, nhưng các khóa phải thuộc kiểu dữ liệu bất biến như chuỗi, số hoặc bộ giá trị.

Truy cập các giá trị trong từ điển

Để truy cập các phần tử từ điển, bạn có thể sử dụng dấu ngoặc vuông quen thuộc cùng với khóa để lấy giá trị của nó. Sau đây là một ví dụ đơn giản -

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print "dict['Name']: ", dict['Name']
print "dict['Age']: ", dict['Age']

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

dict['Name']:  Zara
dict['Age']:  7

Nếu chúng tôi cố gắng truy cập vào một mục dữ liệu bằng khóa, không phải là một phần của từ điển, chúng tôi sẽ gặp lỗi như sau:

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print "dict['Alice']: ", dict['Alice']

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

dict['Alice']:
Traceback (most recent call last):
   File "test.py", line 4, in <module>
      print "dict['Alice']: ", dict['Alice'];
KeyError: 'Alice'

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

Bạn 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ị, sửa đổi mục nhập hiện có hoặc xóa mục nhập hiện có như được minh họa bên dưới trong ví dụ đơn giản -

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
dict['Age'] = 8; # update existing entry
dict['School'] = "DPS School"; # Add new entry

print "dict['Age']: ", dict['Age']
print "dict['School']: ", dict['School']

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

dict['Age']:  8
dict['School']:  DPS School

Xóa các thành phần từ điển

Bạn có thể xóa từng phần tử từ điển hoặc xóa toàn bộ nội dung của từ điển. Bạn cũng có thể xóa toàn bộ từ điển chỉ trong một thao tác.

Để xóa toàn bộ từ điển một cách rõ ràng, chỉ cần sử dụng deltuyên bố. Sau đây là một ví dụ đơn giản -

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
del dict['Name']; # remove entry with key 'Name'
dict.clear();     # remove all entries in dict
del dict ;        # delete entire dictionary

print "dict['Age']: ", dict['Age']
print "dict['School']: ", dict['School']

Điều này tạo ra kết quả sau. Lưu ý rằng một ngoại lệ được đưa ra vì saudel dict từ điển không tồn tại nữa -

dict['Age']:
Traceback (most recent call last):
   File "test.py", line 8, in <module>
      print "dict['Age']: ", dict['Age'];
TypeError: 'type' object is unsubscriptable

Note - Phương thức del () được thảo luận trong phần tiếp theo.

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

Giá trị từ điển không có hạn chế. Chúng có thể là bất kỳ đối tượng Python tùy ý nào, đối tượng chuẩn hoặc đối tượng do người dùng định nghĩa. Tuy nhiên, điều này không đúng với các phím.

Có hai điểm quan trọng cần nhớ về khóa từ điển -

(a)Nhiều hơn một mục nhập cho mỗi khóa không được phép. Có nghĩa là không có khóa trùng lặp nào được phép. Khi gặp các khóa trùng lặp trong quá trình gán, nhiệm vụ cuối cùng sẽ thắng. Ví dụ -

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'}
print "dict['Name']: ", dict['Name']

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

dict['Name']:  Manni

(b)Các phím phải là bất biến. Có nghĩa là bạn có thể sử dụng chuỗi, số hoặc bộ giá trị làm khóa từ điển nhưng những thứ như ['key'] không được phép. Sau đây là một ví dụ đơn giản -

#!/usr/bin/python

dict = {['Name']: 'Zara', 'Age': 7}
print "dict['Name']: ", dict['Name']

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

Traceback (most recent call last):
   File "test.py", line 3, in <module>
      dict = {['Name']: 'Zara', 'Age': 7};
TypeError: list objects are unhashable