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

如何格式化字典输出?实现Python函数结果逐行展示

解决方案

你的原代码通过将字典转为字符串后替换符号的方式生成输出,这种方式不够灵活,还不必要地反转了字典键值对。要实现每行一个条目的格式,直接遍历水果字典的键值对生成对应行内容即可,具体修改如下:

import re
import pprint

def total_fruit_per_sort():
    number_found = re.findall(total_amount_fruit_regex(), verdi50)
   
    fruit_dict = {}
    for n, f in number_found:
        fruit_dict[f] = fruit_dict.get(f, 0) + int(n)
    
    # 生成每行的格式化字符串
    result_lines = [f"{fruit}: {count}" for fruit, count in fruit_dict.items()]
    # 用换行符拼接所有行
    result = "\n".join(result_lines)
    # 打印结果并返回
    print(result)
    return result

total_fruit_per_sort()

关键修改说明:

  • 移除了多余的字典反转操作:原代码中{value: key for value, key in fruit_dict.items()}是将键值对反转,而你需要的输出格式是水果名在前、数量在后,原字典{水果名: 数量}的结构已经符合要求,无需反转。
  • 通过列表推导式生成每行内容,再用"\n".join()拼接成带换行符的字符串,直接打印就能得到每行一个条目的效果。
  • 原函数中pprint.pprint()返回值为None,之前的print(total_fruit_per_sort())会额外打印None,修改后直接在函数内打印结果,避免了多余输出。

如果要保留pprint的使用,也可以直接传入拼接后的字符串:

import re
import pprint

def total_fruit_per_sort():
    number_found = re.findall(total_amount_fruit_regex(), verdi50)
   
    fruit_dict = {}
    for n, f in number_found:
        fruit_dict[f] = fruit_dict.get(f, 0) + int(n)
    
    result_lines = [f"{fruit}: {count}" for fruit, count in fruit_dict.items()]
    result = "\n".join(result_lines)
    pprint.pprint(result)
    return result

total_fruit_per_sort()

修改后输出会完全符合你的需求:

Watermeloenen: 466
Appels: 688
Sinaasappels: 803

内容的提问来源于stack exchange,提问作者mightycode Newton

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 09:45:33