INTRODUCTION
FLOW CONTROL
FUNCTIONS
DATATYPES
OBJECT & CLASS
Bài tập Python: Lập trình hướng đối tượng (OOP) trong Python Lập trình hướng đối tượng trong Python Class Variables trong Python Tìm hiểu về Methods trong Python Cách sử dụng phương thức __init__() trong Python Các biến Instance trong Python Tìm hiểu về Class Attributes trong Python Hàm Static Methods trong Python Phương thức __str__ trong Python Phương thức __repr__ trong Python Phương thức eq trong Python Tìm hiểu phương thức __hash__ trong Python Phương thức __bool__ trong Python Phương thức del trong Python Tìm hiểu về lớp Property trong Python Tìm hiểu về nạp chồng toán tử trong Python Trình Decorator Property trong Python Thuộc tính chỉ đọc trong Python Thuộc tính Delete trong Python Sử dụng super() trong Python Sử dụng __slots__ trong Python Cách sử dụng Protocol trong Python Sử dụng Enum aliases và @enum.unique trong Python Tùy chỉnh và mở rộng lớp Enum trong Python Cách sử dụng hàm Auto() của Python Single Responsibility Principle trong Python Nguyên tắc Đóng-Mở trong Python Nguyên tắc thay thế Liskov - LSP trong Python Interface Segregation Principle - ISP trong Python. Nguyên tắc đảo ngược sự phụ thuộc trong Python Đa kế thừa trong Python Tìm hiểu về các lớp mixin trong Python Mô tả Descriptors trong Python Phân biệt Data Descriptor và Non-data Descriptor trong Python Phương thức __new__ trong Python Tìm hiểu về Class Type trong Python Lớp Metaclass trong Python Ví dụ sử dụng metaclass trong Python Tìm hiểu về decorator dataclass trong Python Tìm hiểu về các ngoại lệ trong Python Ngoại lệ Raise trong Python Sử dụng câu lệnh raise from trong Python Ngoại lệ tùy chỉnh trong Python Module trong Python Package trong Python Class trong Python Hàm khởi tạo trong Python Kế thừa trong Python Đa kế thừa trong Python Setter và Getter trong Python Override trong Python Interface trong Python Bài tập Python: Module và Class
ADVANCED TOPICS
BỔ SUNG
PYTHON CĂN BẢN
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.

Dictionary trong Python: Kiểu dữ liệu từ điển

Trong bài này chúng ta sẽ tìm hiểu kiểu dữ liệu từ điển Dictionary trong Python, đây là kiểu dữ liệu rất hay, thường được dùng để kết hợp với JSON để xử lý dữ liệu.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Nếu bạn đã từng học qua PHP thì có thể xem dictionary python là một mảng kết hợp gôm các cặp key : value. Đây cũng là cấu trúc phù hợp với chuỗi JSON.

1. Tạo dictionary Python

Kiểu từ điển dictionary là loại dữ liệu tổng hợp được sắp xếp không có thứ tự, mỗi phần tử sẽ có hai phần đó là keyvalue.

Nếu bạn đã từng học qua PHP thì nó giống như một mảng Array, còn với Javascript thì nó giống như là một Object.

Bài viết này được đăng tại [free tuts .net]

Ví dụ
my_dict = {1: 'apple', 2: 'ball'}

Như trong ví dụ này thì chúng ta có hai phần tử và mỗi phần tử có hai thông số key : value, đó là 1 : 'apple'2 : 'ball'.

Khi bạn truy xuất một phần tử trong dictionary sẽ rất nhanh nếu biết trước tên khóa đó là gì.

Giả sử mình cần lấy phần tử thứ có key là 1 thì sẽ lấy như sau:

my_dict[1]

Các key có thể là một số tự nhiên hoặc một chuỗi được đặt trong ngoặc đơn hoặc ngoặc kép.

2. Truy xuất phần tử của Dictionary trong Python

Để truy xuất đến các phần tử trong dictionary thì ta dựa vào tên key của phần tử đó, vì vậy bạn phải biết tên key nhé.

Chúng ta có hai cách lấy, cách thứ nhất là thông qua cặp dấu ngoặc vuông và cách thứ hai là thông qua phương thức get() được tích hợp sẵn trong dictionary.

Ví dụ dưới đây thể hiện cho hai cách này.

my_dict = {'name':'Jack', 'age': 26}

# Output: Jack
print(my_dict['name'])

# Output: 26
print(my_dict.get('age'))

Sự khác nhau giữa chúng là gì? Thực tế kết quả không có gì khác nhau, chỉ là với phương thức get() thì sẽ trả về none nếu key không tồn tại, còn cặp ngoặc vuông sẽ trả về lỗi.

Ví dụ
# Error vì key abc không tồn tại
print(my_dict['abc'])

3. Thay đối giá trị phần tử của Dictionary Python

Chúng ta có hai thao tác chủ yếu đó là thêm hoặc thay đổi giá trị cho một phần tử, và đương nhiên để thay đổi thì ta phải biết tên key.

Dictionary là kiểu dữ liệu cho phép ta thay đổi các phần tử. Để thêm một phần tử mới thì ta sử dụng toán tử gán (=), nếu phần tử cần thêm chưa tồn tai thì dictionary sẽ bổ sung nó vào, ngược lại nếu đã tồn tại thì sẽ được cập nhật giá trị.

Hãy xem ví dụ dưới đây.

my_dict = {'name':'Jack', 'age': 26}

# Thay đổi giá trị
my_dict['age'] = 27

#Output: {'age': 27, 'name': 'Jack'}
print(my_dict)

# Thêm phần tử
my_dict['address'] = 'Downtown'  

# Output: {'address': 'Downtown', 'age': 27, 'name': 'Jack'}
print(my_dict)

Khi chạy lên kết quả sẽ có dạng như sau:

{'name': 'Jack', 'age': 27}
{'name': 'Jack', 'age': 27, 'address': 'Downtown'}

4. Xóa phần tử ra khỏi Dictionary

Chúng ta có thể xóa một phần tử ra khỏi dictionary bằng cách sử dụng phương thức pop(), tham số truyền vào là tên key cần xóa, kết quả trả về là giá trị của phần tử đã xóa.

Hoặc sử dụng phương thức popitem() để xóa phần tử ra khỏi dictionary và kết quả trả về là cặp giá trị (key, value) đã xóa, và sử dụng phương thức clear() để xóa toàn bộ phần tử.

Ngoài ra nếu bạn muốn xóa luôn dictionary đó thì có thể sử dụng từ khóa del, chi tiết sẽ xem ở ví dụ dưới đây.

# Xóa sử dụng phương thức pop()
# Output: 16
print(squares.pop(4))  

# Output: {1: 1, 2: 4, 3: 9, 5: 25}
print(squares)

# Xóa sử dụng phương thức popitem()
# Output: (1, 1)
print(squares.popitem())

# Output: {2: 4, 3: 9, 5: 25}
print(squares)

# Xóa sử dụng từ khóa del
del squares[5]  

# Output: {2: 4, 3: 9}
print(squares)

# Xóa tất cả phần tử sử dụng phương thức clear()
squares.clear()

# Output: {}
print(squares)

# Xóa biến squares ra khỏi bộ nhớ
del squares

# Throws Error bởi vì biến squares đã bị xóa nên không tồn tại
# print(squares)

Rõ ràng kết quả khi chạy chương trình này sẽ là:

16
{1: 1, 2: 4, 3: 9, 5: 25}
(1, 1)
{2: 4, 3: 9, 5: 25}
{2: 4, 3: 9}
{}

5. Thay đổi các phần tử dictionary qua vòng lặp

Trường hợp bạn muốn tất cả các phần tử được thay đổi thông qua một công thức nào đó thì có thể kết hợp sử dụng vòng lặp for.

Ví dụ: cho dictionary sau:

squares = {1:1, 2:4, 3:9, 4:16, 5:25}  

Bây giờ mình muốn tạo thành một squares mới với mỗi phần tử sẽ được nhân double lên. Với cách làm thông thường thì mình sẽ làm như sau:

squares = {1:1, 2:4, 3:9, 4:16, 5:25}  
squares[1] = squares[1]*2
squares[2] = squares[2]*2
squares[3] = squares[3]*2
squares[4] = squares[4]*2

#Output: {1: 2, 2: 8, 3: 18, 4: 32, 5: 25}
print(squares)

Trên là một vài chia sẻ về cách sử dụng kiểu từ điển dictionary trong Python, hy vọng qua bài này bạn hiểu được cách khởi tạo, thêm phần tử, xóa phần tử, cũng như thay đổi giá trị của các phần tử trong dictionary.

Cùng chuyên mục:

Cách thêm Progress Bar trong Python với chỉ một dòng Code

Cách thêm Progress Bar trong Python với chỉ một dòng Code

Toán tử Walrus Operator- Tính năng mới trong Python 3.8

Toán tử Walrus Operator- Tính năng mới trong Python 3.8

Cách nạp dữ liệu Machine Learning từ File trong Python

Cách nạp dữ liệu Machine Learning từ File trong Python

Hướng dẫn sử dụng Google Sheets API với Python

Hướng dẫn sử dụng Google Sheets API với Python

Xây dựng  web Python tự động hóa Twitter | Flask, Heroku, Twitter API & Google Sheets API

Xây dựng web Python tự động hóa Twitter | Flask, Heroku, Twitter API & Google Sheets API

Xây dựng Web Machine Learning đẹp mắt với Streamlit và Scikit-learn trong Python

Xây dựng Web Machine Learning đẹp mắt với Streamlit và Scikit-learn trong Python

Hướng dẫn tạo Chatbot đơn giản bằng PyTorch

Hướng dẫn tạo Chatbot đơn giản bằng PyTorch

11 mẹo và thủ thuật để viết Code Python hiệu quả hơn

11 mẹo và thủ thuật để viết Code Python hiệu quả hơn

Hướng dẫn làm ứng dụng TODO với Flask dành cho người mới bắt đầu trong Python

Hướng dẫn làm ứng dụng TODO với Flask dành cho người mới bắt đầu trong Python

Hướng dẫn viết Snake Game bằng Python

Hướng dẫn viết Snake Game bằng Python

Cách sử dụng chế độ interactive trong Python

Cách sử dụng chế độ interactive trong Python

Cách sử dụng Python Debugger với hàm breakpoint()

Cách sử dụng Python Debugger với hàm breakpoint()

Xây dựng ứng dụng Web Style Transfer với PyTorch và Streamlit

Xây dựng ứng dụng Web Style Transfer với PyTorch và Streamlit

Cách cài đặt Jupyter Notebook trong môi trường Conda và thêm Kernel

Cách cài đặt Jupyter Notebook trong môi trường Conda và thêm Kernel

Hướng dẫn xây dựng ứng dụng dự đoán giá cổ phiếu bằng Python

Hướng dẫn xây dựng ứng dụng dự đoán giá cổ phiếu bằng Python

Hướng dẫn tạo ứng dụng AI hội thoại với NVIDIA Jarvis trong Python

Hướng dẫn tạo ứng dụng AI hội thoại với NVIDIA Jarvis trong Python

Hỗ trợ Async trong Django 3.1

Hỗ trợ Async trong Django 3.1

8 mẹo tái cấu trúc Python giúp mã sạch hơn và Pythonic

8 mẹo tái cấu trúc Python giúp mã sạch hơn và Pythonic

Ý nghĩa của if __name__ ==

Ý nghĩa của if __name__ == "__main__" trong Python

Cách xóa phần tử trong danh sách Python

Cách xóa phần tử trong danh sách Python

Top