如何在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
相关产品推荐
相关产品推荐

