dàn âm thanh hội trường, âm thanh lớp học, âm thanh phòng họp, loa trợ giảng

Kiểu từ điển dictionary trong python

Kiểu từ điển dictionary trong python

Kiểu dữ liệu Dictionary trong Python (kiểu từ điển) là một tập hợp các cặp key – value (khóa – giá trị) không có thứ tự, có thể thay đổi và lập chỉ mục (truy cập phần tử theo chỉ mục).

SGK, sách ôn thi, sách tham khảo giá rẻ

Kiểu dictionary trong python, kiểu từ điển trong Python

1. Khai báo dictionary

Dictionary trong Python được khai báo với cặp dấu ngoặc nhọn {} bao ngoài giống như với Set. Bên trong các phần tử theo cặp (khóa key và giá trị value) được phân tách bởi dấu phẩy (,) phân tách giữa khóa và giá trị của từng phần tử bởi dấu hai chấm (:). Cú pháp chung như sau:

name = {key_1: value_1, key_2: value_2, ..., key_n: value_n}

  • Nếu như các phần tử trong danh sách list được truy xuất thông qua vị trí index thì phần tử trong từ điển được truy xuất qua khóa (key).
  • Khóa key phải là một kiểu dữ liệu không thay đổi (immutable). Nó có thể là một chuỗi string, số… nhưng nó phải là duy nhất trong từ điển.
  • Giá trị value có thể là chuỗi, số hoặc các dữ liệu có cấu trúc như list, tuple, set hoặc thậm chí là dictionary.

Ví dụ sau tạo một từ điển dictCar gồm có 3 phần tử:

SGK, sách ôn thi, sách tham khảo giá rẻ
dictCar = {
    "brand": "Honda",
    "model": "Honda Civic",
    "year": 1972
}
print(dictCar)

Kết quả:

{'brand': 'Honda', 'model': 'Honda Civic', 'year': 1972}

Chúng ta cũng có thể sử dụng hàm có sẵn dict() để khai báo một từ điển dictionary.

friend_ages = dict({"Rolf": 24, "Adam": 30, "Anne": 27})

hoặc

SGK, sách ôn thi, sách tham khảo giá rẻ

friend_ages = dict([("Rolf", 24), ("Adam", 30), ("Anne", 27)])

2. Truy xuất giá trị của từ điển

Một từ điển dictionary có thể truy xuất giá trị từng phần tử thông qua các khóa key theo cú pháp:

name[key]

Ví dụ, trong từ điển friend_ages ở trên, chúng ta có thể truy xuất thông tin (giá trị) của key Binh bằng câu lệnh friend_ages['Binh']

SGK, sách ôn thi, sách tham khảo giá rẻ
friend_ages = {'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}
print(friend_ages['Binh']) #kết quả 30

Ngoài ra bạn cũng có thể sử dụng hàm get() để truy cập item của Dictionary trong Python:

friend_ages = {'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}
print(friend_ages.get('Binh')) #kết quả 30

3. Thay đổi giá trị của dictionary trong Python

Dictionary trong Python có thể thay đổi thêm bớt các phần tử, thay đổi giá trị của các phần tử hiện có. Để thay đổi giá trị của phần tử trong dictionary thì ta cũng là tương tự như đối với list là truy cập đến phần tử cần truy cập và thay đổi giá trị của nó.

Ví dụ, chúng ta thay đổi tuổi của Binh thành 50 bằng câu lệnh gán như sau:

friend_ages = {'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}
friend_ages['Binh'] = 50
print(friend_ages['Binh'])#kết quả 50

4. Duyệt qua các phần tử của dict

Bạn có thể duyệt qua một Dictionary bằng cách sử dụng vòng lặp for. Khi duyệt một Dictionary bằng vòng lặp for, giá trị trả về là các khóa key

SGK, sách ôn thi, sách tham khảo giá rẻ
friend_ages = {'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}
for x in friend_ages:
  print(x)

Kết quả trả về:

An
Binh
Cuc
Dat
Hoa

Lúc này, bạn có thể dùng hàm get() để lấy giá trị tương ứng của khóa hoặc dùng cách truy cập đến phần tử của dict như phần 2 ở trên:

friend_ages = {'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}
for x in friend_ages:
  print(friend_ages[x])

Kết quả trả về:

SGK, sách ôn thi, sách tham khảo giá rẻ

24
30
27
30
18

Bạn cũng có thể sử dụng hàm items() để lấy về một danh sách tất cả các cặp (key-value) của một Dictionary. Sử dụng hàm keys() hoặc hàm values() để lấy về danh sách tất cả các key hoặc các value của một từ điển.

friend_ages = {'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}

print(friend_ages.items()) #kết quả dict_items([('An', 24), ('Binh', 30), ('Cuc', 27), ('Dat', 30), ('Hoa', 18)])
print(friend_ages.keys()) #kết quả dict_keys(['An', 'Binh', 'Cuc', 'Dat', 'Hoa'])
print(friend_ages.values()) #kết quả dict_values([24, 30, 27, 30, 18])

5. Một số phương thức trong Dictionary của Python

5.1. Kiểm tra nếu key tồn tại

Để xác định xem một khóa key được chỉ định có tồn tại trong từ điển hay không, sử dụng từ khóa in:

friend_ages = {'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}

print('Binh' in friend_ages) #kết quả True
print('Mai' in friend_ages) #kết quả False

Hoặc sử dụng hàm dict.has-key(key) . Hàm này trả về True nếu key có mặt trong Dictionary, nếu không thì trả về False. Tuy nhiên hàm này đã bị xóa kể từ phiên bản Python 3.x.

SGK, sách ôn thi, sách tham khảo giá rẻ

5.2. Độ dài của một Dictionary trong Python

Để xác định có bao nhiêu item (cặp khóa-giá trị) trong Dictionary, hãy sử dụng hàm len()

friend_ages = {'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}
print(len(friend_ages)) #kết quả 5

5.3. Thêm phần tử vào Dictionary

Thêm một item vào Dictionary được thực hiện bằng cách sử dụng khóa mới và gán giá trị cho nó:

friend_ages = {'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}
friend_ages['Lan'] = 19
print(friend_ages) #{'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30, 'Hoa': 18, 'Lan': 19}

5.4. Xóa phần tử trong dictionary

Có nhiều phương pháp để loại bỏ các item của một Dictionary.

Cách thứ nhất, để xóa một phần tử trong dictionary thì chúng ta sử dụng lệnh del và chọn phần tử cần xóa. Ví dụ:

SGK, sách ôn thi, sách tham khảo giá rẻ
friend_ages = {'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}
del friend_ages['Binh']
print(friend_ages) #kết quả {'An': 24, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}

Cách thứ hai, xóa item của Dictionary bằng hàm pop('key')

friend_ages = {'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}
friend_ages.pop('Binh')
print(friend_ages) #kết quả {'An': 24, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}

Cách thứ 3, xóa item của Dictionary bằng hàm popitem(). Hàm popitem() xóa item cuối cùng của từ điển (trong các phiên bản trước 3.7, một phần tử ngẫu nhiên được xóa).

friend_ages = {'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}
friend_ages.popitem()
print(friend_ages) #kết quả {'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30}

Nếu bạn muốn xóa tất cả các phần tử bên trong dictionary thì bạn sử dụng phương thức clear theo cú pháp:

name.clear()

SGK, sách ôn thi, sách tham khảo giá rẻ

Trong đó, name là tên của dictionary mà bạn muốn xóa hết phần tử.

friend_ages = {'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}
friend_ages.clear()
print(friend_ages) #kết quả {}

5.5. Sao chép một từ điển

Bạn không thể sao chép từ điển chỉ bằng cách gán dict2 = dict1, bởi vì khi đó dict2 sẽ chỉ là một tham chiếu đến dict1 và những thay đổi được thực hiện dict1 cũng sẽ tự động được thực hiện dict2.

Có nhiều cách để tạo một bản sao, một trong các cách đó là sử dụng hàm copy() được xây dựng sẵn trong Dictionary.

friend_ages = {'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}
mate_ages = friend_ages.copy()
friend_ages.pop('Binh')
print(friend_ages) #kết quả {'An': 24, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}
print(mate_ages) #kết quả {'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}

Cách tiếp theo là chúng ta sử dụng hàm dict() để tạo một từ điển mới từ các phần tử của từ điển đã có.

SGK, sách ôn thi, sách tham khảo giá rẻ
friend_ages = {'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}
mate_ages = dict(friend_ages)
friend_ages.pop('Binh')
print(friend_ages) #kết quả {'An': 24, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}
print(mate_ages) #kết quả {'An': 24, 'Binh': 30, 'Cuc': 27, 'Dat': 30, 'Hoa': 18}

6. Dictionary lồng nhau trong Python

Một Dictionary cũng có thể chứa nhiều Dictionary, điều này được gọi là từ điển lồng nhau.

myCars = {
  'car1' : {
  'brand': 'Honda',
  'year' : 2009
  },
  'car2' : {
  'brand': 'Yamaha',
  'year' : 2019
  },
  'car3' : {
  'brand': 'Honda',
  'year' : 2021
  }
}

print(myCars)

Kết quả trả về:

{'car1': {'brand': 'Honda', 'year': 2021}, 'car2': {'brand': 'Yamaha', 'year': 2019}}

SGK, sách ôn thi, sách tham khảo giá rẻ

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *