Ở các phần trước chúng ta đã được tìm hiểu về kiểu dữ liệu như string, list, và phần này Lập trình không khó sẽ cùng các bạn tiếp tục đi vào tìm hiểu một kiểu dữ liệu nữa trong 5 kiểu dữ liệu chuẩn của Python đó là từ điển trong Python (Tiếng anh là dictionary).
Từ điển trong python
Từ điển trong Python là một tập hợp các giá trị dữ liệu không được sắp xếp, không giống như các kiểu dữ liệu khác chỉ giữ giá trị đơn lẻ như một thành phần. Từ điển lưu trữ dữ liệu ở dạng cặp giá trị key:value
. Giá trị khóa được cung cấp trong từ điển để làm cho nó tối ưu hơn. Mỗi cặp khóa-giá trị trong Từ điển được phân tách bằng dấu hai chấm : trong khi mỗi khóa được phân tách bằng dấu phẩy ‘.
Tạo mới từ điển trong Python
Trong Python, Từ điển có thể được tạo bằng cách đặt chuỗi các phần tử trong dấu ngoặc nhọn {} , được phân tách bằng dấu phẩy , . Từ điển giữ một cặp giá trị, một là Key và phần tử cặp tương ứng khác là của nó Key:value
. Các giá trị trong từ điển có thể là bất kỳ kiểu dữ liệu nào và có thể được lặp lại, trong khi các khóa không thể lặp lại và phải là bất biến .
Từ điển cũng có thể được tạo bởi hàm dict (). Một từ điển trống có thể được tạo bằng cách chỉ cần đặt vào dấu ngoặc nhọn {}.
# tạo một dict trống Dict = {} print(Dict) #return {} # tạo một dict với key là các số nguyên Dict = {1: 'lập', 2: 'trình', 3: 'không khó'} print(Dict) #return {1: 'lập', 2: 'trình', 3: 'không khó'} # tạo một dict với key hỗn hợp Dict = {'Name': 'dict', 1: [1, 2, 3, 4]} print(Dict) #return {'Name': 'dict', 1: [1, 2, 3, 4]} # tạo một dict sử dụng dict() Dict = dict({1: 'ví dụ', 2: 'về ', 3:'dict()'}) print(Dict) #return {1: 'ví dụ', 2: 'về ', 3: 'dict()'} # tạo một dict với mỗi cặp Dict = dict([(1, 'Gun'), (2, 'Gim')]) print(Dict) #return {1: 'Gun', 2: 'Gim'}
Thuộc tính của khóa
Có ba điểm quan trọng trong khi sử dụng khóa
- Các khóa không được trùng lặp nhau.
- Các giá trị trong từ điển có thể thuộc bất kỳ loại nào trong khi các khóa phải là bất biến như số hoặc chuỗi.
- Các khóa từ điển có phân biệt chữ hoa chữ thường.
Thêm các giá trị vào từ điển
Trong từ điển Python, việc thêm các phần tử có thể được thực hiện theo nhiều cách. Một giá trị tại một thời điểm có thể được thêm vào từ điển bằng cách xác định giá trị cùng với khóa, ví dụ: Dict [Key] = ‘Value’.
# tạo một từ điển Dict = {} # thêm các giá trị Dict[0] = 'Wellcom' Dict[1] = 'Lập trình không khó' print(Dict) #return {0: 'Wellcom', 1: 'Lập trình không khó'}
Lưu ý- Khi thêm một giá trị, nếu giá trị khóa đã tồn tại, giá trị sẽ được cập nhật.
# tạo một dict mới Dict = {0: 'Welcom', 1: 'Lập trình khồng khó'} #nếu khóa mới trùng với khóa đã có thì sẽ được cập nhật Dict[1] = 'to Hanoi' print(Dict) #return {0: 'Welcom', 1: 'to Hanoi'}
Truy cập giá trị của từ điển
Để truy cập vào các mục của từ điển. Có thể sử dụng khóa bên trong dấu ngoặc vuông. Ngoài ra, còn có một phương thức gọi là get()
cũng sẽ giúp lấy phần tử từ từ điển.
# tạo một dict mới Dict = {1: 'chào', 2: 'các', 3: 'bạn'} # truy cập theo cách thông thường print(Dict[1]) #return chào # truy cập bằng phương thức get() print(Dict.get(3)) #return bạn
Xóa một giá trị khỏi từ điển
Xóa các phần tử có thể được thực hiện bằng cách sử dụng từ khóa del
. Sử dụng từ khóa del
có thể xóa một giá trị cụ thể hoặc cũng có thể xóa toàn bộ từ điển. .
Dict = {'ten':'hiếu', 'ho':'duy'} del Dict['ten'] print(Dict) #return {'ho': 'duy'}
Lưu ý: del Dict
sẽ xóa hẳn từ điển.
Để xóa toàn bộ phần tử, bạn có thể dùng hàm clear()
Dict.clear()
Các hàm làm việc với từ điển
Hàm lấy số lượng phần tử: len()
Phương thức len()
sẽ trả về độ dài của từ điển
# tạo một dict mới Dict = {'hieu':17, 'hoai':18, 'anh':22, 'nam':25} print(len(Dict)) #return 4
Chuyển từ điển thành chuỗi: str()
Với str()
, ta sẽ lấy được chuỗi tương ứng của từ điển.
dict = {'Ten': 'Hieu', 'Tuoi': 20}; print("Bieu dien chuoi tuong duong la :", % str (dict)) #return Bieu dien chuoi tuong duong la : {'Ten': 'Hieu', 'Tuoi': 20}
Sao chép từ điển: copy()
Phương thức copy()
sẽ copy toàn bộ dữ liệu từ từ điển này sang từ điển khác
Dict1 = {'hieu':17, 'hoai':18, 'anh':22, 'nam':25} Dict2 = Dict1.copy() print(Dict2) #return {'hieu': 17, 'hoai': 18, 'anh': 22, 'nam': 25}
Cập nhật 1 giá trị của từ điển: update()
Tương tự như việc thêm giá trị mới cho từ điển, hàm update()
sẽ thêm vào một giá trị mới, hoặc sẽ cập nhật một giá trị nếu có các khóa trùng nhau.
Dict = {'hieu':17, 'hoai':18, 'anh':22, 'nam':25} Dict.update({'hieu':16}) #cập nhật tuổi cho 'hieu' Dict.update({'thu':26}) #thêm một phần tử mới print(Dict) #retrun {'hieu': 16, 'hoai': 18, 'anh': 22, 'nam': 25, 'thu': 26}
Lấy danh sách phần tử: items()
Phương thức items()
sẽ trả về một danh sách các cặp giá trị key:value
.
Dict = {'hieu':17, 'hoai':18, 'anh':22, 'nam':25} print(Dict.items()) #return dict_items([('hieu', 17), ('hoai', 18), ('anh', 22), ('nam', 25)])
Lấy value theo key: get()
Phương thức get()
trả về giá trị của key đã cho. Nếu key không có mặt thì phương thức này trả về None
.
dict.get(key, default=None)
- key — Đây là key để được tìm trong từ điển.
- default — Đây là giá trị được trả về trong trường hợp key không tồn tại.
dict = {'Ten': 'Hieu', 'Tuoi': 19} # sẽ trả về tuổi print(dict.get('Tuoi')) #return 19 #trả về None nếu key 'Gioitinh' không có trong dict print(dict.get('Gioitinh', "None")) #return None
Sắp xếp từ điển: sorted()
Về bản chất thì một từ điển không thể được sắp xếp. Nhưng trên thực tế, đôi khi chúng ta cần sắp xếp các từ điển trong python. Bằng cách này hay cách khác chúng ta có thể chuyển các từ điển sang các dạng khác để sắp xếp.
Sắp xếp theo key
Sử dụng hàm items()
để lấy ra danh sách các cặp giá trị key:value
. Lúc này hàm sorted
sẽ sắp xếp các danh sách các cặp giá trị đó theo thứ tự đã chọn.
dict = {1:'a', 5:'h', 3:'x', 2:'l'} #sắp xếp tăng dần theo key print(sorted(dict.items(), reverse=False)) #return [(1, 'a'), (2, 'l'), (3, 'x'), (5, 'h')] #sắp xếp giảm dần theo key print(sorted(dict.items(), reverse=True)) #return [(5, 'h'), (3, 'x'), (2, 'l'), (1, 'a')]
Nếu reverse=True
thì sẽ sắp xếp theo giá trị giảm dần, còn nếu bằng False thì sẽ sắp xếp tăng dần.
Sắp xếp theo value
dict = {1:'a', 5:'h', 3:'x', 2:'l'} s = [] #sắp xếp tăng dần theo giá trị của key for i in sorted(dict, key=dict.get, reverse=False): s.append((i, dict[i])) print(s) #return [(1, 'a'), (5, 'h'), (2, 'l'), (3, 'x')]
hàm sorted(dict, key=dict.get, reverse=False)
sẽ trả về một list các giá trị đã được sắp xếp. Việc tiếp theo cần làm là thêm các cặp key:value
vào s bằng cách sử dụng append
.
Lời kết
Vừa rồi mình đã giới thiệu cho các bạn về cách tạo dictionary cũng như các thao tác thêm, update, copy… và các hàm thường dùng với dictionary. Hi vọng thông qua bài viết các bạn có thể hiểu rõ hơn về từ điển trong python.
Hãy tham gia group lập trình không khó để cùng thảo luận về các vấn đề về lập trình.
Hẹn các bạn vào các bài học sau!!!
Để lại một bình luận