Ở bài này ta sẽ tìm hiểu về Dictionaries trong python. Dictionaries được sử dụng để lưu trữ nhiều mục trong một biến duy nhất.
Dictionaries
- Dictionary được sử dụng để lưu trữ các giá trị dữ liệu theo cặp key:value
- Dictionary à một bộ sưu tập được sắp xếp theo thứ tự, có thể thay đổi và không cho phép trùng lặp.
- Dictionary được viết bằng dấu ngoặc nhọn và có các khóa và giá trị.
thisdict = { "brand": "Ford", "model": "Mustang", "year": 1964 } print(thisdict) >>> {'brand': 'Ford', 'model': 'Mustang', 'year': 1964}
Phần tử trong Dictionary
- Các phần tử trong Dictionary được sắp xếp theo thứ tự, có thể thay đổi và không cho phép trùng lặp.
- Các phần tử trong Dictionary được trình bày theo key:value và có thể được tham chiếu bằng cách sử dụng tên khóa.
- Dictionary không thể có hai mục có cùng khóa
thisdict = { "brand": "Ford", "model": "Mustang", "year": 1964, "year": 2020 } print(thisdict) >>> {'brand': 'Ford', 'model': 'Mustang', 'year': 2020}
- Các giá trị trong các mục từ điển có thể thuộc bất kỳ loại dữ liệu nào:
Độ dài của Dictionary
Để xác định một từ điển có bao nhiêu mục, hãy sử dụng hàm len():
thisdict = { "brand": "Ford", "model": "Mustang", "year": 1964, "year": 2020 } print(len(thisdict)) >>>3
Kiểu dữ liệu của Dictionary
Theo quan điểm của Python, từ điển được định nghĩa là các đối tượng có kiểu dữ liệu ‘dict’:
<class 'dict'>
Khởi tạo Dictionary bằng dict()
Cũng có thể sử dụng hàm tạo dict() để tạo Dictionary.
thisdict = dict(name = "John", age = 36, country = "Norway") print(thisdict) >>> {'name': 'John', 'age': 36, 'country': 'Norway'}
Phần tử thuộc Dictionary
Truy cập các phần tử
- Bạn có thể truy cập các mục của Dictionary bằng cách tham khảo tên khóa của nó, bên trong dấu ngoặc vuông:
thisdict = { "brand": "Ford", "model": "Mustang", "year": 1964 } x = thisdict["model"]
- Ngoài ra còn có một phương pháp được gọi hàm get() là sẽ cho bạn kết quả tương tự:
x = thisdict.get("model")
Lấy tất cả các giá trị Key
- Phương thức keys() sẽ trả về danh sách tất cả các khóa trong Dictionary.
x = thisdict.keys()
- Danh sách các khóa là dạng tham thiếu Dictionary, nghĩa là mọi thay đổi được thực hiện đối với Dictionary sẽ được phản ánh trong danh sách khóa.
car = { "brand": "Ford", "model": "Mustang", "year": 1964 } x = car.keys() print(x) #before the change car["color"] = "white" print(x) #after the change >>> dict_keys(['brand', 'model', 'year']) dict_keys(['brand', 'model', 'year', 'color'])
Lấy tất cả các giá trị Value
- Phương thức values() sẽ trả về danh sách tất cả các giá trị trong Dictionary.
x = thisdict.values()
- Danh sách các giá trị là dạng tham chiếu của Dictionary, nghĩa là mọi thay đổi được thực hiện đối với Dictionary sẽ được phản ánh trong danh sách giá trị.
car = { "brand": "Ford", "model": "Mustang", "year": 1964 } x = car.values() print(x) #before the change car["year"] = 2020 print(x) #after the change >>> dict_values(['Ford', 'Mustang', 1964]) dict_values(['Ford', 'Mustang', 2020])
Lấy tất cả cặp giá trị key:value
- Phương thức items() sẽ trả về từng phần tử trong Dictionary, dưới dạng các một danh sách các tuple.
x = thisdict.items()
- Danh sách trả về là là tham chiếu các phần tử của Dictionary, nghĩa là mọi thay đổi được thực hiện đối với Dictionary sẽ được phản ánh trong danh sách phần tử.
car = { "brand": "Ford", "model": "Mustang", "year": 1964 } x = car.items() print(x) #before the change car["color"] = "red" print(x) #after the change >>> dict_items([('brand', 'Ford'), ('model', 'Mustang'), ('year', 1964)]) dict_items([('brand', 'Ford'), ('model', 'Mustang'), ('year', 1964), ('color', 'red')])
Thay đổi phần tử thuộc Dictionary
Thay đổi thêm hoặc sửa phần tử
- Bạn có thể thay đổi giá trị của một phần tử cụ thể bằng cách tham khảo tên khóa của nó:
thisdict = { "brand": "Ford", "model": "Mustang", "year": 1964 } thisdict["year"] = 2018
- Phương thức update() sẽ cập nhật Dictionary với các mục từ đối số đã cho. Đối số phải là một Dictionary hoặc một đối tượng có thể lặp lại với các key:value.
thisdict = { "brand": "Ford", "model": "Mustang", "year": 1964 } thisdict.update({"year": 2020}) >>> {'brand': 'Ford', 'model': 'Mustang', 'year': 2020}
Xoá phần tử
Có một số phương pháp để xóa mục khỏi Dictionary:
- Phương thức pop() xóa mục có tên khóa được chỉ định:
thisdict = { "brand": "Ford", "model": "Mustang", "year": 1964 } thisdict.pop("model") print(thisdict)
- Phương thức popitem() sẽ xóa mục được chèn cuối cùng (trong các phiên bản trước 3.7, thay vào đó, một mục ngẫu nhiên sẽ bị xóa):
thisdict = { "brand": "Ford", "model": "Mustang", "year": 1964 } thisdict.popitem() print(thisdict)
- Từ khóa del sẽ xóa mục có tên khóa được chỉ định:
thisdict = { "brand": "Ford", "model": "Mustang", "year": 1964 } del thisdict["model"] print(thisdict)
- Phương thức clear()làm trống Dictionary:
thisdict = { "brand": "Ford", "model": "Mustang", "year": 1964 } thisdict.clear() print(thisdict)
Duyệt phần tử trong Dictionary
Bạn có thể lặp qua một Dictionary bằng cách sử dụng một vòng lặp for.
Khi lặp qua một Dictionary, giá trị trả về là các khóa của Dictionary, nhưng cũng có các phương thức để trả về các value.
Ví dụ: In tất cả các tên khóa trong Dictionary
thisdict = { "brand": "Ford", "model": "Mustang", "year": 1964 } for x in thisdict: print(x)
Hoặc
for x in thisdict.keys(): print(x)
Ví dụ: In tất cả các value trong Dictionary
for x in thisdict: print(thisdict[x])
Hoặc
for x in thisdict.values(): print(x)
Ví dụ: Lặp lại cả khóa và giá trị bằng cách sử dụng phương thức items():
for x, y in thisdict.items(): print(x, y)
Sao chép Dictionary
Ta không thể sao chép Dictionary chỉ bằng cách gõ dict2 = dict1, bởi vì: dict2 sẽ chỉ là một tham chiếu đến dict1, và những thay đổi được thực hiện trong đó dict1 cũng sẽ tự động được thực hiện trong dict2.
Có nhiều cách để tạo một bản sao, một cách là sử dụng phương pháp copy().
thisdict = { "brand": "Ford", "model": "Mustang", "year": 1964 } mydict = thisdict.copy() print(mydict)
Một cách khác để tạo bản sao là sử dụng chức năng tích hợp sẵn dict().
thisdict = { "brand": "Ford", "model": "Mustang", "year": 1964 } mydict = dict(thisdict) print(mydict)
Dictionary lồng nhau
Một Dictionary có thể chứa các Dictionary đây được gọi là Dictionary lồng nhau.
myfamily = { "child1" : { "name" : "Emil", "year" : 2004 }, "child2" : { "name" : "Tobias", "year" : 2007 }, "child3" : { "name" : "Linus", "year" : 2011 } }
Hoặc nếu bạn muốn thêm ba Dictionary vào một Dictionary mới:
child1 = { "name" : "Emil", "year" : 2004 } child2 = { "name" : "Tobias", "year" : 2007 } child3 = { "name" : "Linus", "year" : 2011 } myfamily = { "child1" : child1, "child2" : child2, "child3" : child3 }
Truy cập phần từ trong Dictionary lồng nhau
Để truy cập các phần tử từ một Dictionary lồng nhau, bạn sử dụng tên của Dictionary, bắt đầu từ Dictionary ngoài:
myfamily = { "child1" : { "name" : "Emil", "year" : 2004 }, "child2" : { "name" : "Tobias", "year" : 2007 }, "child3" : { "name" : "Linus", "year" : 2011 } } print(myfamily["child2"]["name"]) >>> Tobias
Nếu bạn là newbie có thể tham khảo bài viết này để tìm hiểu lộ trình học DA trong 3 tháng của SmartData.
Nếu bạn thấy bài viết hay và hữu ích, bạn có thể tham gia các kênh sau của SmartData để nhận được nhiều hơn nữa: