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

Python中如何格式化字典内浮点数以去除首尾多余零?

实现字典浮点数的紧凑格式化

方法一:字符串直接替换

这种方法简单直接,针对目标格式做精准替换:

original_dict = {'0': 0.773, '1': -0.529, '2': -0.004, '3': -0.035}

# 格式化每个值
formatted_items = []
for key, value in original_dict.items():
    val_str = str(value)
    # 替换正数的"0."为".",负数的"-0."为"-."
    val_str = val_str.replace("0.", ".").replace("-0.", "-.")
    formatted_items.append(f"'{key}':{val_str}")

# 生成紧凑的字典字符串
result = "{" + ",".join(formatted_items) + "}"
print(result)  # 输出: {'0':.773,'1':-.529,'2':-.004,'3':-.035}

方法二:正则表达式替换

用正则可以更灵活处理类似格式,适合扩展更多场景:

import re

original_dict = {'0': 0.773, '1': -0.529, '2': -0.004, '3': -0.035}
# 匹配可选负号+0+小数点的模式
pattern = r'(-?)0\.'

formatted_items = []
for key, value in original_dict.items():
    val_str = str(value)
    # 替换为 负号(如果有)+ 小数点
    val_str = re.sub(pattern, r'\1.', val_str)
    formatted_items.append(f"'{key}':{val_str}")

result = "{" + ",".join(formatted_items) + "}"
print(result)

保存到文本文件

直接将生成的紧凑字符串写入文件,最大化节省存储空间:

with open('formatted_data.txt', 'w', encoding='utf-8') as f:
    f.write(result)

补充说明

  • 如果遇到值为整数形式的浮点数(如0.0、1.000),若需要进一步去除尾随零和小数点,可以额外处理:
    # 示例:将1.000转为1,0.0转为0,-.0转为-0
    val_str = re.sub(r'\.0+$', '', val_str)
    val_str = re.sub(r'^\.(0+)$', r'0', val_str)
    val_str = re.sub(r'^-\.(0+)$', r'-0', val_str)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 22:31:05