7 thủ thuật Python với Dictionary và String giúp code gọn hơn
- Home
- 7 thủ thuật Python với Dictionary và String giúp code gọn hơn
Khi làm việc với Python, đặc biệt là trong các dự án Web API, automation, scraping hoặc xử lý JSON, dict và str là hai kiểu dữ liệu được sử dụng gần như mỗi ngày.
Python cung cấp rất nhiều phương thức và cú pháp tiện lợi giúp xử lý chúng nhanh chóng mà không cần viết quá nhiều code.
Dưới đây là 7 thủ thuật Python thực tế mà developer nên biết.
get()Giả sử có một dictionary:
user = {
"name": "Nguyen Van A",
"email": "a@example.com"
}
Nếu truy cập trực tiếp:
print(user["phone"])
Python sẽ báo lỗi:
KeyError: 'phone'
Khi không chắc key có tồn tại hay không, hãy sử dụng get():
phone = user.get("phone")
print(phone)
Kết quả:
None
Bạn cũng có thể đặt giá trị mặc định:
phone = user.get("phone", "Chưa cập nhật")
print(phone)
Kết quả:
Chưa cập nhật
get() hữu ích?Khi xử lý dữ liệu từ API, JSON hoặc database, không phải lúc nào tất cả field cũng tồn tại.
Thay vì:
if "phone" in user:
phone = user["phone"]
else:
phone = "Chưa cập nhật"
Có thể viết:
phone = user.get("phone", "Chưa cập nhật")
Code ngắn hơn và dễ đọc hơn.
.items()Giả sử:
user = {
"name": "An",
"age": 30,
"city": "Da Nang"
}
Nếu muốn lấy cả key và value:
for key, value in user.items():
print(key, value)
Kết quả:
name An
age 30
city Da Nang
Đây là cách rõ ràng hơn so với việc lấy danh sách key rồi truy cập dictionary nhiều lần.
In toàn bộ dữ liệu cấu hình:
config = {
"host": "localhost",
"port": 3306,
"debug": True
}
for key, value in config.items():
print(f"{key}: {value}")
Kết quả:
host: localhost
port: 3306
debug: True
|Trong Python hiện đại, bạn có thể kết hợp hai dictionary bằng toán tử |.
Ví dụ:
user = {
"name": "An",
"age": 30
}
contact = {
"email": "an@example.com",
"phone": "0123456789"
}
result = user | contact
print(result)
Kết quả:
{
'name': 'An',
'age': 30,
'email': 'an@example.com',
'phone': '0123456789'
}
Thay vì phải sử dụng nhiều dòng code để cập nhật dictionary, bạn có thể thực hiện trực tiếp.
Ví dụ:
a = {
"name": "An",
"age": 25
}
b = {
"age": 30,
"city": "Hanoi"
}
result = a | b
print(result)
Kết quả:
{
'name': 'An',
'age': 30,
'city': 'Hanoi'
}
Giá trị trong dictionary bên phải sẽ được ưu tiên.
Lưu ý: cú pháp
|cho dictionary được giới thiệu từ Python 3.9.
Python cho phép đảo ngược một chuỗi chỉ bằng một dòng code:
text = "Python"
reverse_text = text[::-1]
print(reverse_text)
Kết quả:
nohtyP
Cú pháp:
text[start:stop:step]
Khi sử dụng:
[::-1]
Python sẽ duyệt chuỗi từ cuối về đầu.
Thủ thuật này còn có thể dùng để kiểm tra palindrome:
text = "madam"
if text == text[::-1]:
print("Palindrome")
Kết quả:
Palindrome
strip()Khi nhận dữ liệu từ người dùng hoặc API, chuỗi thường có thể chứa khoảng trắng thừa.
Ví dụ:
name = " Nguyen Van A "
Sử dụng:
name = name.strip()
print(name)
Kết quả:
Nguyen Van A
strip():
text.strip()
Loại bỏ khoảng trắng ở đầu và cuối.
lstrip():
text.lstrip()
Loại bỏ khoảng trắng bên trái.
rstrip():
text.rstrip()
Loại bỏ khoảng trắng bên phải.
Ví dụ:
text = " Python "
print(text.strip())
print(text.lstrip())
print(text.rstrip())
Đây là thao tác rất thường xuyên được sử dụng khi xử lý dữ liệu form, CSV, scraping hoặc API.
json.dumps()Khi làm việc với API, bạn sẽ thường xuyên phải chuyển đổi giữa Python object và JSON.
Ví dụ:
import json
user = {
"name": "An",
"age": 30,
"active": True
}
json_data = json.dumps(user)
print(json_data)
Kết quả:
{"name": "An", "age": 30, "active": true}
Nếu muốn JSON dễ đọc hơn:
json_data = json.dumps(
user,
indent=4,
ensure_ascii=False
)
print(json_data)
Kết quả:
{
"name": "An",
"age": 30,
"active": true
}
ensure_ascii=False đặc biệt hữu ích khi JSON chứa tiếng Việt hoặc các ký tự Unicode.
Ví dụ:
user = {
"name": "Nguyễn Văn A",
"city": "Đà Nẵng"
}
print(
json.dumps(
user,
ensure_ascii=False,
indent=4
)
)
json.loads()Chiều ngược lại, nếu nhận JSON từ API dưới dạng chuỗi:
import json
json_data = '''
{
"name": "An",
"age": 30,
"active": true
}
'''
Có thể chuyển thành Python dictionary bằng json.loads():
user = json.loads(json_data)
print(user["name"])
print(user["age"])
Kết quả:
An
30
Đây là thao tác rất quan trọng khi làm việc với API.
Ví dụ:
import requests
response = requests.get(
"https://example.com/api/users"
)
data = response.json()
print(data)
Trong trường hợp sử dụng thư viện requests, bạn thường không cần gọi json.loads() thủ công vì response.json() đã thực hiện việc parse JSON cho bạn.
Bạn có thể sử dụng in:
user = {
"name": "An",
"email": "an@example.com"
}
if "email" in user:
print("Email đã tồn tại")
Kết quả:
Email đã tồn tại
Cách này đặc biệt hữu ích khi xử lý dữ liệu không đồng nhất từ API.
Ví dụ:
if "avatar" in user:
print(user["avatar"])
else:
print("Không có avatar")
Hoặc đơn giản hơn:
avatar = user.get("avatar", "")
Dictionary và String xuất hiện trong hầu hết các chương trình Python thực tế. Việc nắm được một số phương thức và cú pháp quan trọng sẽ giúp developer xử lý dữ liệu nhanh hơn và giảm lượng code không cần thiết.
Trong bài viết này, chúng ta đã tìm hiểu:
dict.get() để lấy dữ liệu an toàn.dict.items() để duyệt key và value.| để kết hợp dictionary.[::-1] để đảo ngược chuỗi.strip() để loại bỏ khoảng trắng.json.dumps() để chuyển Python object thành JSON.json.loads() để chuyển JSON thành Python object.Đặc biệt, dict, string và JSON là những kiến thức nền tảng rất quan trọng nếu bạn đang sử dụng Python để xây dựng REST API, automation tool, web scraping hoặc các ứng dụng xử lý dữ liệu.
Hãy ghi nhớ những thủ thuật nhỏ này. Khi sử dụng thường xuyên, chúng sẽ giúp code Python của bạn ngắn gọn, rõ ràng và dễ bảo trì hơn.