Python 3 - 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/python3
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 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/python3
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['Zara']:
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 hiển thị trong ví dụ đơn giản dưới đây.
#!/usr/bin/python3
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/python3
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.
Một ngoại lệ được nêu ra vì sau del 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. Điều này có nghĩa là không cho phép khóa trùng lặ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/python3
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. Điều này 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/python3
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
Các hàm và phương thức từ điển tích hợp sẵn
Python bao gồm các hàm từ điển sau:
Sr.No. | Mô tả chức năng |
---|---|
1 | cmp (dict1, dict2) Không còn khả dụng trong Python 3. |
2 | len (dict) Cung cấp tổng độ dài của từ điển. Con số này sẽ bằng với số lượng mục trong từ điển. |
3 | str (dict) Tạo ra một biểu diễn chuỗi có thể in của từ điển |
4 | loại (biến) Trả về kiểu của biến đã truyền. Nếu biến được truyền là từ điển, thì nó sẽ trả về một loại từ điển. |
Python bao gồm các phương thức từ điển sau:
Sr.No. | Phương pháp & Mô tả |
---|---|
1 | dict.clear () Loại bỏ tất cả các thành phần của từ điển dict |
2 | dict.copy () Trả về một bản sao ngắn của từ điển dict |
3 | dict.fromkeys () Tạo một từ điển mới với các khóa từ seq và các giá trị được đặt thành giá trị . |
4 | dict.get (key, default = Không có) Đối với khóa chính, trả về giá trị hoặc giá trị mặc định nếu khóa không có trong từ điển |
5 | dict.has_key (phím) Loại bỏ, sử dụng trong hoạt động để thay thế. |
6 | dict.items () Trả về danh sách các cặp tuple (khóa, giá trị) của dict |
7 | dict.keys () Trả về danh sách các khóa của từ điển dict |
số 8 | dict.setdefault (khóa, mặc định = Không có) Tương tự như get (), nhưng sẽ đặt dict [key] = default nếu key chưa có trong dict |
9 | dict.update (dict2) Thêm các cặp khóa-giá trị của từ điển dict2 vào dict |
10 | dict.values () Trả về danh sách các giá trị của từ điển dict |