如何在Python字符串格式化中遍历字典并输出键值?
解决字典键值在f-string中拼接输出的问题
你当前代码的问题是:在f-string里直接写{k for k,v in dict}这种生成器表达式,Python会把它解析成生成器对象,而不是你期望的拼接后的字符串,运行时会输出类似<generator object <genexpr> at 0x...>的结果,无法得到目标格式。
正确的做法是用' '.join()方法把字典的键或值拼接成空格分隔的字符串,再放到f-string中。另外注意不要用dict作为变量名,这会覆盖Python内置的dict类型,建议换成比如my_dict。
示例代码
my_dict = {'this':'I','is':'am','title':'done'} # 输出键 print(f'the key is {" ".join(my_dict.keys())}') # 输出值 print(f'the val is {" ".join(my_dict.values())}')
如果一定要通过遍历items()的方式获取键和值,也可以这么写:
my_dict = {'this':'I','is':'am','title':'done'} print(f'the key is {" ".join(k for k, v in my_dict.items())}') print(f'the val is {" ".join(v for k, v in my_dict.items())}')
运行结果
the key is this is title the val is I am done
' '.join()会接收一个可迭代对象(比如字典的keys()、values(),或者生成器表达式),把其中每个元素用空格连接成完整字符串,这样就能实现任意长度字典的指定格式输出。
内容的提问来源于stack exchange,提问作者FL.S
相关产品推荐
相关产品推荐

