如何将字典展开到f-string中,实现类似{variable=}的输出效果?
字典展开为f-string中key=value格式的方法
直接使用{**kwargs=}会触发语法错误,因为f-string的{expr=}语法要求expr是合法的独立表达式,而**kwargs是解包语法,无法单独作为表达式使用。可以通过以下方法实现需求:
方法一:生成器表达式拼接
直接在f-string里用', '.join()结合生成器表达式,逐个拼接键值对:
kwargs = dict(a=5, b=2) output = f'got {", ".join(f"{k}={v}" for k, v in kwargs.items())}' print(output) # 输出: got a=5, b=2
如果需要像{variable=}一样保留值的原始repr格式(比如字符串带引号),可以用repr(v):
kwargs = dict(a=5, b='test') output = f'got {", ".join(f"{k}={repr(v)}" for k, v in kwargs.items())}' print(output) # 输出: got a=5, b='test'
方法二:封装复用函数
如果需要多次使用,可以封装成函数:
def dict_to_kv_str(d): return ", ".join(f"{k}={v}" for k, v in d.items()) kwargs = dict(a=5, b=2) output = f'got {dict_to_kv_str(kwargs)}' print(output) # 输出: got a=5, b=2
内容的提问来源于stack exchange,提问作者user2561747
相关产品推荐
相关产品推荐

