📜  Python|漂亮地打印带有字典值的字典(1)

📅  最后修改于: 2023-12-03 14:46:29.929000             🧑  作者: Mango

Python | 漂亮地打印带有字典值的字典

Python 是一门强大的编程语言,它支持各种数据类型,包括字典。字典是包含键值对的可变容器,使用起来非常方便。如果要打印带有字典值的字典,可以使用 Python 内置的 pprint 模块。

pprint 模块

pprint (pretty-print)模块提供了快速、简单的打印方法,可以打印出 Python 对象的各种数据类型。 pprint 模块提供了定制化功能,可以帮助程序员编写更加漂亮的代码。

要使用 pprint,需要首先导入 pprint 模块:

import pprint
pprint.pprint 函数

pprint.pprint 函数能够打印出一个结构化的 Python 对象,如字典、列表、元组等。例如:

my_dict = {'name': 'Tom', 'age': 30, 'city': 'New York'}
pprint.pprint(my_dict)

输出:

{'age': 30, 'city': 'New York', 'name': 'Tom'}

可以看到,pprint 能够将字典的键值对按照字典顺序排序,同时也可以将多行数据按照一个缩进分组,从而使数据更加易读。

pprint.pformat 函数

pprint.pformat 函数可以返回一个字符串,其中包含了结构化的 Python 对象的表达方式。例如:

my_dict = {'name': 'Tom', 'age': 30, 'city': 'New York'}
formatted = pprint.pformat(my_dict)
print(formatted)

输出:

{'age': 30, 'city': 'New York', 'name': 'Tom'}

可以看到,pprint.pformat 函数返回一个字符串,与 pprint.pprint 的输出结果完全相同。

示例程序

下面是一个程序,它通过使用 pprint 函数来打印一个字典。该字典包含了几个内嵌字典,并且每个内嵌字典都包含了多个 key-value 键值对。

import pprint

data = {'name': 'Tom',
        'age': 30,
        'gender': 'Male',
        'address': {'city': 'New York',
                    'state': 'NY',
                    'postcode': '10001'},
        'phone': [{'type': 'home', 'number': '123-456-7890'},
                  {'type': 'work', 'number': '456-789-0123'}]
        }

pprint.pprint(data)

输出如下:

{'address': {'city': 'New York',
             'postcode': '10001',
             'state': 'NY'},
 'age': 30,
 'gender': 'Male',
 'name': 'Tom',
 'phone': [{'number': '123-456-7890', 'type': 'home'},
           {'number': '456-789-0123', 'type': 'work'}]}

可以看到,使用 pprint 函数打印出了一个非常漂亮的数据层次结构,所有的字典和嵌套在列表里的条目都被正确地格式化。

结论

Python 的 pprint 模块是一个非常有用的工具,它可以帮助程序员更好地理解和组织大型数据集。使用 pprint 可以大大提高代码的可读性和可维护性,使程序员更加高效和专业。