如何精简Python f-string中自文档表达式的冗余输出?
如何精简Python f-string中自文档表达式的冗余输出?
当然有办法解决这个问题啦!咱们先搞清楚根源:f-string的{a=}自文档表达式默认用repr()生成变量的字符串表示,而numpy数组的repr会带上完整的类型标识和dtype信息,你想要的是str()输出的简洁可读格式。下面给你几种实用方案:
方案一:手动拼接简洁格式
直接用!s转换符调用str()获取数组的精简格式,再和变量名拼接,写法直观:import numpy as np a = np.array([2, 3, 1, 9], dtype='i4') print(f'a={a!s}') # 输出: a=[2 3 1 9]方案二:保留自文档语法的简化写法
如果你想维持{a=}这种不用手动写变量名的便利,只需要把转换符!s放在变量名和=之间,这是最贴合Python风格的写法:print(f'{a!s=}') # 输出: a=[2 3 1 9]它既保留了自文档表达式的优势,又输出了你想要的精简结果。
方案三:自定义格式化函数(适合批量处理)
如果需要处理多个变量或者有更复杂的格式需求,可以写个小函数统一处理:def format_var(var_name, var_value): return f'{var_name}={var_value!s}' print(format_var('a', a)) # 输出: a=[2 3 1 9]这种方式灵活性更高,后续还能扩展添加更多格式规则。
备注:内容来源于stack exchange,提问作者Paul Jurczak
相关产品推荐
相关产品推荐

