Dictionaries trong Python

Bởi Kiên Smart Data
0 Nhận xét

Ở 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:

Bài viết liên quan

Để lại nhận xét

Copyright @2022 – Bản quyền thuộc Học viện dữ lệu Smart Data