You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python字典输出中添加换行?(禁止使用循环语句)

解决字典键值对逐行输出且不使用循环的问题

方法一:使用pprint模块(推荐)

Python的pprint模块专门用于格式化打印数据结构,无需手动编写循环即可实现字典键值对逐行输出的效果。

修改后的代码如下:

import pprint

students = ['Tommy', 'Kitty', 'Jessie', 'Chester', 'Curie', 'Darwing', 'Nancy', 'Sue', 
            'Peter', 'Andrew', 'Karren', 'Charles', 'Nikhil', 'Justin', 'Astha', 'Victor', 
            'Samuel', 'Olivia', 'Tony']

assignment = [2, 5, 5, 7, 1, 5, 2, 7, 5, 1, 1, 1, 2, 1, 5, 2, 7, 2, 7]

groupset = set(assignment)    
sorted_list = sorted(list(groupset)) 
ansdict = {f'Group {a}': [students[b] for b in range(len(students)) if assignment[b] == a] for a in sorted_list}

pprint.pprint(ansdict)

执行后输出:

{'Group 1': ['Curie', 'Andrew', 'Karren', 'Charles', 'Justin'],
 'Group 2': ['Tommy', 'Nancy', 'Nikhil', 'Victor', 'Olivia'],
 'Group 5': ['Kitty', 'Jessie', 'Darwing', 'Peter', 'Astha'],
 'Group 7': ['Chester', 'Sue', 'Samuel', 'Tony']}

方法二:字符串替换法(无需额外模块)

如果不想导入模块,可以通过字符串替换的方式,将字典默认输出中的逗号分隔符替换为带换行的分隔符:

students = ['Tommy', 'Kitty', 'Jessie', 'Chester', 'Curie', 'Darwing', 'Nancy', 'Sue', 
            'Peter', 'Andrew', 'Karren', 'Charles', 'Nikhil', 'Justin', 'Astha', 'Victor', 
            'Samuel', 'Olivia', 'Tony']

assignment = [2, 5, 5, 7, 1, 5, 2, 7, 5, 1, 1, 1, 2, 1, 5, 2, 7, 2, 7]

groupset = set(assignment)    
sorted_list = sorted(list(groupset)) 
ansdict = {f'Group {a}': [students[b] for b in range(len(students)) if assignment[b] == a] for a in sorted_list}

# 替换分隔符实现换行
formatted_output = '{' + str(ansdict)[1:-1].replace(', ', ',\n ') + '}'
print(formatted_output)

该方法同样不需要编写循环语句,输出格式与期望一致。

内容的提问来源于stack exchange,提问作者Gartz man

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 19:55:15