-
Tuần 1 - Ngày 10 tháng 7 năm 2019
- Giới thiệu về khóa học
- Hướng dẫn viết chương trình Python trên web
- Hướng dẫn sử dụng PyCharm
- Tổng quan về Python
- Kỹ năng sử dụng Google search
- Viết tài liệu kỹ thuật dùng Markdown
- Hàm xây dựng sẵn trong Python – math và random
- Cài đặt các công thức toán cơ bản
- Xây dựng hàm trong python
- Điều kiện if-else
- Những lỗi thường gặp trong Python
- Reading assignment
-
Tuần 2 - Ngày 17 tháng 7 năm 2019
-
Tuần 3 - Ngày 24 tháng 7 năm 2019
-
Tuần 4 - Ngày 31 tháng 7 năm 2019
-
Tuần 5 - Ngày 7 tháng 8 năm 2019
-
Advanced Python
-
Tuần 6 - Ngày 14 tháng 8 năm 2019
-
Tuần 7 - Ngày 28 tháng 8 năm 2019
-
Tuần 8
-
Tuần 9
Dictionary trong Python
Dictionary là một danh sách các phần tử. Mỗi phần tử là một cặp key và value. Dictionary không được sắp xếp. Bạn có thể truy cập vào danh sách các value hoặc key một cách độc lập. Ví dụ tạo một dictionary gồm 2 phần tử
d = {'first':'string value', 'second':[1,2]} keys = d.keys() values = d.values() print(keys) print(values)
Kết quả
dict_keys(['first', 'second']) dict_values(['string value', [1, 2]])
Bạn có thể lấy value dựa vào key như sau
d = {'first':'string value', 'second':[1,2]} print(d['first']) print(d['second'])
Kết quả
string value [1, 2]
Chúng ta có thể dùng hàm items() để lấy về một danh sách các tuple (key, value) như sau
d = {'first':'string value', 'second':[1,2]} items = d.items() print('items:', items) for k,v in items: print(k, v)
Kết quả
items: dict_items([('first', 'string value'), ('second', [1, 2])]) first string value second [1, 2]
Để lấy giá trị tương ứng với một khóa cụ thể, bạn có thể dùng hàm get()
hay hàm pop()
. Sự khác biệt giữa hai hàm này là hàm pop()
xóa phần tử được lấy ra từ dictionary.
Ví dụ về dùng hàm get()
d = {'first':'string value', 'second':[1,2]} value = d.get('first') print(value) print(d)
Kết quả
string value {'first': 'string value', 'second': [1, 2]}
Ví dụ về dùng hàm pop()
d = {'first':'string value', 'second':[1,2]} value = d.pop('first') print(value) print(d)
Kết quả
string value {'second': [1, 2]}
Chúng ta có thể lấy ra một phần tử với hàm popitem() như sau
d = {'1':'value1', '2':'value2', '3':'value3', '4':'value4'} item = d.popitem() print(item) print(d)
Kết quả
('4', 'value4') {'1': 'value1', '2': 'value2', '3': 'value3'}
Chúng ta sử dụng hàm copy() để sao chép một một dictionary
d1 = {'a': [1,2]} d2 = d1.copy() print('d1:', d1) print('d2:', d2)
Kết quả
d1: {'a': [1, 2]} d2: {'a': [1, 2]}
Tuy nhiên, hàm copy() chỉ sap chép kiểu shallow, nghĩa là thay đổi giá trị của một dictionary sẽ thay đổi theo các bản sao chép của nó.
d1 = {'a': [1,2], 'b': 5} d2 = d1.copy() # thay đổi giá trị d2 sẽ ảnh hưởng đến d1 d2['a'][0] = 3 d2['a'][1] = 4 print('d1:', d1) print('d2:', d2)
Kết quả
d1: {'a': [3, 4], 'b': 5} d2: {'a': [3, 4], 'b': 5}
Để tạo một bản sao độc lập hoàn toàn với bản gốc, chúng ta sử dụng hàm deepcopy()
trong module copy
như sau
import copy d1 = {'a': [1,2], 'b': 5} d2 = copy.deepcopy(d1) # thay đổi giá trị d2 d2['a'][0] = 3 d2['a'][1] = 4 print('d1:', d1) print('d2:', d2)
Kết quả
d1: {'a': [1, 2], 'b': 5} d2: {'a': [3, 4], 'b': 5}
Bạn có thể xóa tất cả các phần tử của một dictionary bằng hàm clear()
d = {'a': [1,2], 'b': 5} print(d) d.clear() print(d)
Kết quả
{'a': [1, 2], 'b': 5} {}
Từ khóa del có thể được sử dụng để xóa một phần tử trong dictionary
d = {'a': [1,2], 'b': 5} print(d) del d['a'] print(d)
Kết quả
{'a': [1, 2], 'b': 5} {'b': 5}
Từ khóa del cũng có thể dùng để xóa một dictionary. Sau khi xóa, nếu chúng ta cố dùng lại sẽ bị báo lỗi sau
d = {'a': [1,2], 'b': 5} print(d) del d print(d)
Kết quả
{'a': [1, 2], 'b': 5} --------------------------------------------------------------------------- NameError Traceback (most recent call last) <ipython-input-45-75b31475aad4> in <module> 3 4 del d ----> 5 print(d) NameError: name 'd' is not defined
Chúng ta có thể dùng hàm update() để kết hợp hai dictionary như sau
d1 = {'a':1} d2 = {'b':2, 'c':3} print('d1:', d1) print('d2:', d2) d1.update(d2) print('d1 sau khi update:', d1)
Kết quả
d1: {'a': 1} d2: {'b': 2, 'c': 3} d1 sau khi update: {'a': 1, 'b': 2, 'c': 3}
Chúng ta có thể tạo một dictionary từ hai list. Một list cho các key và một list cho các value.
l_keys = ['a', 'b', 'c', 'd', 'e'] l_values = [1, 2, 3, 4, 5] d = {(k,v) for (k,v) in zip(l_keys,l_values)} print(d)
Kết quả
{('b', 2), ('c', 3), ('d', 4), ('e', 5), ('a', 1)}