Trong Python, từ điển (dictionary) là một loại cấu trúc dữ liệu được sử dụng để lưu trữ và sắp xếp các cặp khóa-giá trị (key-value). Mỗi khóa chỉ định một giá trị duy nhất và được sử dụng để truy cập các giá trị tương ứng trong từ điển. Từ điển trong Python là một đối tượng có thể thay đổi được (mutable object), cho phép thêm, xóa và sửa đổi các cặp khóa-giá trị trong từ điển. Cú pháp để tạo một từ điển trong Python là sử dụng các cặp khóa-giá trị, được phân tách bằng dấu hai chấm và được bao quanh bởi dấu ngoặc nhọn. Ví dụ:
my_dict = {'name': 'John', 'age': 26, 'address': 'HaNoi', 'phone': '0123456789'}
Trong ví dụ trên, my_dict
là một từ điển có 4 cặp khóa-giá trị. Các khóa của từ điển là name
, age
, address
và phone
. Các giá trị tương ứng của các khóa là John
, 26
, HaNoi
và 0123456789
.
Truy cập vào các phần tử của từ điển
Để truy cập vào các phần tử của từ điển, bạn có thể sử dụng các dấu ngoặc vuông quen thuộc kèm theo khóa để lấy giá trị của nó. Dưới đây là một ví dụ đơn giản:
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print "dict['Name']: ", dict['Name']
print "dict['Age']: ", dict['Age']
Khi chạy đoạn mã trên, sẽ được kết quả như sau:
dict['Name']: Zara
dict['Age']: 7
Nếu chúng ta cố gắng truy cập vào một phần tử dữ liệu với một khóa, mà không phải là một phần của từ điển, chúng ta sẽ nhận được một lỗi như sau.
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print "dict['Alice']: ", dict['Alice']
Khi chạy đoạn mã trên, sẽ được kết quả như sau:
Traceback (most recent call last):
File "test.py", line 3, in <module>
print "dict['Alice']: ", dict['Alice']
KeyError: 'Alice'
Thêm một phần tử vào từ điển
Để thêm một phần tử vào từ điển, bạn chỉ cần chỉ định khóa và giá trị của phần tử đó. Nếu khóa đã tồn tại trong từ điển, giá trị của phần tử đó sẽ được cập nhật. Ví dụ:
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 chạy đoạn mã trên, sẽ được kết quả như sau:
dict['Age']: 8
dict['School']: DPS School
Xóa một phần tử khỏi từ điển
Bạn có thể xóa các phần tử từ điển một cách riêng lẻ 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 trong một hoạt động duy nhất.
Để xóa một từ điển hoàn toàn, chỉ cần sử dụng câu lệnh del. Dưới đây là một ví dụ đơn giản.
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 lỗi được báo vì sau khi del xóa từ điển 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
Thuộc tính của các khóa từ điển
Giá trị từ điển không có các hạn chế. Chúng có thể là bất kỳ đối tượng Python tùy ý nào, có thể là các đối tượng chuẩn hoặc các đối tượng được định nghĩa bởi người dùng. Tuy nhiên, điều này không đúng với các khóa.
Có hai điểm quan trọng cần nhớ về các khóa từ điển:
(a) Không được phép có nhiều hơn một mục cho mỗi khóa. Điều này có nghĩa là không cho phép khóa trùng lặp. Khi khóa trùng lặp được gặp trong quá trình gán, phép gán cuối cùng sẽ chiến thắng. Ví dụ:
dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'}
print "dict['Name']: ", dict['Name']
Khi chạy đoạn mã trên, sẽ được kết quả như sau:
dict['Name']: Manni
(b) Khóa phải là một đối tượng không thay đổi, chẳng hạn như số hoặc chuỗi hoặc tuple. Nếu bạn sử dụng các đối tượng có thể thay đổi như danh sách làm khóa, bạn sẽ gặp phải một lỗi. Ví dụ:
dict = {['Name']: 'Zara', 'Age': 7}
print "dict['Name']: ", dict['Name']
Khi chạy đoạn mã trên, sẽ được kết quả như sau:
Traceback (most recent call last):
File "test.py", line 1, in <module>
dict = {['Name']: 'Zara', 'Age': 7}
TypeError: unhashable type: 'list'
Các hàm và phương thức của từ điển
Các hàm của từ điển được liệt kê dưới đây:
Tên | Mô tả | Ví dụ |
---|---|---|
len(dict) | Trả về số lượng phần tử trong từ điển. | len({'a': 1, 'b': 2, 'c': 3}) trả về 3 vì từ điển có 3 phần tử |
str(dict) | Tạo chuỗi biểu diễn từ điển có thể in ra. | str({'a': 1, 'b': 2, 'c': 3}) trả về chuỗi “{‘a’: 1, ‘b’: 2, ‘c’: 3}” để có thể in ra được từ điển |
type(variable) | Trả về kiểu của biến, nếu là từ điển sẽ trả về dict . |
type({'a': 1, 'b': 2, 'c': 3}) trả về dict vì đó là kiểu của từ điển |
Các phương thức của từ điển được liệt kê dưới đây:
Tên | Giải thích | Ví dụ |
---|---|---|
dict.clear() |
Xóa tất cả các phần tử của từ điển dict . |
d = {'a': 1, 'b': 2} d.clear() print(d) {} |
dict.copy() |
Tạo một bản sao nông (shallow copy) của từ điển dict . |
d = {'a': 1, 'b': 2} d2 = d.copy() print(d2) {'a': 1, 'b': 2} |
dict.fromkeys(seq, value=None) |
Tạo một từ điển mới với các khóa từ seq và giá trị được thiết lập bằng value . |
keys = ['a', 'b', 'c'] values = 0 d = dict.fromkeys(keys, values) print(d) {'a': 0, 'b': 0, 'c': 0} |
dict.get(key, default=None) |
Trả về giá trị của khóa key nếu có trong từ điển dict , nếu không có trả về giá trị mặc định là default . |
d = {'a': 1, 'b': 2} print(d.get('a', 0)) 1 |
key in dict hoặc dict.has_key(key) |
Trả về True nếu key có trong từ điển dict , ngược lại trả về False . |
d = {'a': 1, 'b': 2} print('a' in d) True |
dict.items() |
Trả về một danh sách các cặp (khóa, giá trị) của từ điển dict . |
d = {'a': 1, 'b': 2} print(d.items()) dict_items([('a', 1), ('b', 2)]) |
dict.keys() |
Trả về một danh sách các khóa trong từ điển dict . |
d = {'a': 1, 'b': 2} print(d.keys()) dict_keys(['a', 'b']) |
dict.setdefault(key, default=None) |
Trả về giá trị của khóa key nếu có trong từ điển dict , nếu không có thì tạo một khóa mới với giá trị là default . |
d = {'a': 1, 'b': 2} print(d.setdefault('c', 3)) 3 print(d) {'a': 1, 'b': 2, 'c': 3} |
dict.update(dict2) |
Thêm các cặp key-value của từ điển dict2 vào từ điển dict . |
dict1 = {'a': 1, 'b': 2} dict2 = {'b': 3, 'c': 4} dict1.update(dict2) {'a': 1, 'b': 3, 'c': 4} . |
dict.values() |
Trả về danh sách các giá trị trong từ điển dict . |
{'a': 1, 'b': 2, 'c': 3}.values() [1, 2, 3] . |
Bình luận