Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.
Sử dụng pprint trong Python
Trong quá trình làm việc với dữ liệu phức tạp trong Python, việc hiển thị dữ liệu sao cho dễ nhìn và có cấu trúc rõ ràng là điều vô cùng quan trọng. Thư viện pprint
(viết tắt của "pretty-print") là công cụ tích hợp sẵn trong Python, giúp trình bày dữ liệu phức tạp một cách gọn gàng, dễ theo dõi, đặc biệt hữu ích khi xử lý các cấu trúc dữ liệu lồng nhau. Bài viết này sẽ giới thiệu các tính năng của pprint
, từ cú pháp cơ bản đến những tùy chọn định dạng nâng cao, giúp bạn dễ dàng thao tác và phân tích dữ liệu hiệu quả hơn.
Hàm pprint.pprint(object)
trong Python
Đây là hàm nổi bật nhất trong module pprint
.
Cú pháp:
pprint.pprint(object, stream=None, indent=1, width=80, depth=None, *, compact=False, sort_dicts=True, underscore_numbers=False)
Các tham số chính:
Bài viết này được đăng tại [free tuts .net]
object
: Đối tượng cần in ra.indent
: Độ thụt lề cho từng cấp độ lồng nhau.width
: Số ký tự tối đa trên một dòng.depth
: Giới hạn độ sâu của các lớp lồng nhau; khi đạt độ sâu này, các lớp còn lại sẽ được hiển thị là "...".sort_dicts
: NếuFalse
, thứ tự các khóa của dictionary sẽ được giữ nguyên theo thứ tự chèn vào; nếuTrue
, các khóa sẽ được sắp xếp.underscore_numbers
: Thêm dấu gạch dưới_
vào các chữ số hàng nghìn để dễ đọc hơn.compact
: NếuTrue
, các phần tử của một danh sách sẽ được căn chỉnh để hiển thị tối ưu trên một dòng, nếu không thì mỗi phần tử sẽ nằm trên một dòng riêng.stream
: Luồng xuất dữ liệu, chẳng hạn nhưStringIO
hoặcBytesIO
; mặc định làsys.stdout
.
Ví dụ:
from pprint import pprint data = [ {"language": "Python", "application": ["Data Science", "Automation", "Scraping", "API"]}, {"language": "Javascript", "application": ["Web Development", "API", "Web Apps", "Games"]} ] pprint(data, indent=3)
Kết quả:
[ { 'application': ['Data Science', 'Automation', 'Scraping', 'API'], 'language': 'Python'}, { 'application': ['Web Development', 'API', 'Web Apps', 'Games'], 'language': 'Javascript'}]
Ví dụ với sort_dicts
:
values = {'a': 1, 'd': 4, 'b': 2} pprint(values) # Sắp xếp các khóa # {'a': 1, 'b': 2, 'd': 4} pprint(values, sort_dicts=False) # Giữ nguyên thứ tự khóa # {'a': 1, 'd': 4, 'b': 2}
Hàm pprint.pformat(object)
trong Python
Hàm pformat()
hoạt động tương tự như pprint()
, nhưng thay vì in dữ liệu ra, nó trả về dữ liệu đã được định dạng dưới dạng chuỗi.
Cú pháp:
pprint.pformat(object, ...)
Ví dụ:
from pprint import pformat nested_dict = [ {"language": "Python", "application": ["Data Science", "Automation", "Scraping", "API"]}, {"language": "Javascript", "application": ["Web Development", "API", "Web Apps", "Games"]} ] string_representation = pformat(nested_dict) print(string_representation)
Kết quả:
[{'application': ['Data Science', 'Automation', 'Scraping', 'API'], 'language': 'Python'}, {'application': ['Web Development', 'API', 'Web Apps', 'Games'], 'language': 'Javascript'}]
Hàm pprint.pp(object)
trong Python
Đây là một alias cho hàm pprint.pprint()
, có sẵn từ phiên bản Python 3.8 trở lên.
Hàm pprint.isreadable(object)
trong Python
Hàm này trả về True
nếu đối tượng có thể được pprint
hiển thị dễ đọc, giúp kiểm tra khả năng hiển thị của đối tượng.
Hàm pprint.isrecursive(object)
trong Python
Trả về True
nếu đối tượng có cấu trúc đệ quy, tức là bản thân đối tượng chứa một tham chiếu tới chính nó.
Ví dụ:
from pprint import pprint, isrecursive recursive_dict = {} recursive_dict[0] = recursive_dict[1] = recursive_dict print(isrecursive(recursive_dict)) # True pprint(recursive_dict)
Kết quả:
True {0: <Recursion on dict with id=140056761037664>, 1: <Recursion on dict with id=140056761037664>}