在 Python 中打印字典中的所有键值对

在 Python 中打印字典中的所有键值对

Print all key-value pairs in a Dictionary in Python

要打印字典中的所有键值对:

  1. 使用该dict.items()方法获取字典项目的视图。
  2. 使用for循环遍历视图。
  3. 使用该print()函数打印每个键值对。
主程序
my_dict = { 'name': 'bobbyhadz', 'age': 30, 'language': 'Python' } for key, value in my_dict.items(): # name bobbyhadz # age 30 # language Python print(key, value) print(list(my_dict.keys())) # 👉️ ['name', 'age', 'language'] print(list(my_dict.values())) # 👉️ ['bobbyhadz', 30, 'Python']

dict.items方法返回字典
项((键,值)对)的新视图。

主程序
# 👇️ [('name', 'bobbyhadz'), ('age', 30), ('language', 'Python')] print(list(my_dict.items()))

如果您需要以任何方式格式化键和值,请使用格式化字符串文字。

主程序
my_dict = { 'name': 'bobbyhadz', 'age': 30, 'language': 'Python' } for key, value in my_dict.items(): # name=bobbyhadz # age=30 # language=Python print(f'{key}={value}')
格式化字符串文字 (f-strings) 让我们通过在字符串前加上f.
主程序
var1 = 'bobby' var2 = 'hadz' result = f'{var1}{var2}' print(result) # 👉️ bobbyhadz

确保将表达式括在大括号 –{expression}中。

您可以使用dict.keys()dict.values()方法来打印字典的键和值。

主程序
my_dict = { 'name': 'bobbyhadz', 'age': 30, 'language': 'Python' } print(list(my_dict.keys())) # 👉️ ['name', 'age', 'language'] print(list(my_dict.values())) # 👉️ ['bobbyhadz', 30, 'Python']

dict.keys方法返回字典键的
新视图。

dict.values方法返回字典
值的新视图。

如果需要将字典的键值对拼接成字符串,使用str.join()方法。
主程序
my_dict = { 'name': 'bobbyhadz', 'age': 30, 'language': 'Python' } result = ', '.join(f'{key}: {value}' for key, value in my_dict.items()) # 👇️ name: bobbyhadz, age: 30, language: Python print(result)

我们将一个生成器表达式传递给该str.join()方法。

生成器表达式用于对每个元素执行某些操作或选择满足条件的元素子集。

在每次迭代中,我们使用格式化的字符串文字来格式化键值对。

str.join方法将一个可迭代对象作为参数并返回一个字符串,该字符串是可迭代对象中字符串的串联。

调用该方法的字符串用作元素之间的分隔符。

我们使用逗号和空格作为键值对之间的分隔符,但您可以使用任何其他分隔符。

下面是一个使用换行符 ( \n) 作为分隔符的示例。

主程序
my_dict = { 'name': 'bobbyhadz', 'age': 30, 'language': 'Python' } result = '\n'.join(f'{key}: {value}' for key, value in my_dict.items()) # name: bobbyhadz # age: 30 # language: Python print(result)

\n当与换行符 ( ) 字符分隔符连接时,字典的键值对打印在单独的行上。

您还可以使用可迭代的*拆包运算符和sep参数来打印字典中的所有键值对。

主程序
my_dict = { 'name': 'bobbyhadz', 'age': 30, 'language': 'Python' } # ('name', 'bobbyhadz') # ('age', 30) # ('language', 'Python') print(*my_dict.items(), sep='\n')

*迭代解包运算符
使我们能够在函数调用、推导式和生成器表达式中解包可迭代对象。

sep参数是我们传递给 的参数之间的分隔print()

主程序
print('bobby', 'hadz', sep='') # 👉️ bobbyhadz print('bobby', 'hadz') # 👉️ bobby hadz

默认情况下,sep参数设置为空格。

您可以使用该json.dumps()方法漂亮地打印字典中的键值对。

主程序
import json my_dict = { 'name': 'bobbyhadz', 'age': 30, 'language': 'Python' } # { # "name": "bobbyhadz", # "age": 30, # "language": "Python" # } print(json.dumps(my_dict, indent=4))

json.dumps方法将 Python 对象转换为 JSON 格式的字符串

如果indent设置为非负整数,则 JSON 数组元素或对象成员将使用指定的缩进级别进行漂亮打印。

我们使用了4空格的缩进级别,但您可以使用任何其他正整数。

在序列化为 JSON 时,您可以将sort_keys参数设置True为对字典的键进行排序。

主程序
import json my_dict = { 'name': 'bobbyhadz', 'age': 30, 'language': 'Python' } # { # "age": 30, # "language": "Python", # "name": "bobbyhadz" # } print(json.dumps(my_dict, indent=4, sort_keys=True))

sort_keys参数可用于按键按字母顺序对输出进行排序。

您还可以使用该pprint()方法漂亮地打印字典中的键值对。

主程序
from pprint import pprint my_dict = { 'name': 'bobbyhadz', 'age': 30, 'language': 'Python' } # {'name': 'bobbyhadz', # 'age': 30, # 'language': 'Python'} pprint(my_dict, width=1, sort_dicts=False)

pprint.pprint方法打印对象
的格式化表示。

我们将width参数1设置为将每行所需的最大字符数设置为1

这样,字典中的所有键值对都将打印在不同的行上。

我们还将sort_dicts参数设置为False以防止该方法按字母顺序对字典中的键进行排序。

sort_dicts设置为False,字典的项目按插入顺序打印。