首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在string.format中迭代dict

如何在string.format中迭代dict
EN

Stack Overflow用户
提问于 2022-09-09 10:28:29
回答 3查看 62关注 0票数 2

我读了很多教程,但是找不到如何在string.format中像这样迭代dict:

代码语言:javascript
复制
dict = {'this':'I','is':'am','title':'done'}
print(f'the key is {k for k,v in dict}')
print(f'the val is {v for k,v in dict}')

我想得到这样的结果:

代码语言:javascript
复制
the key is this is title
the val is I am done

这样我就可以打印可变长度的字典了。

代码语言:javascript
复制
dict = {'this':'I','is':'am','title':'done'}
print(f'the key is {k for k,v in dict}')
print(f'the val is {v for k,v in dict}')

然后我就出错了。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-09-09 10:31:31

目前,您的输出是:

代码语言:javascript
复制
the key is <generator object <genexpr> at 0x7fbaca5443c0>
the val is <generator object <genexpr> at 0x7fbaca5443c0>

这是因为k for k,v in dict是一个生成器表达式。不要把它和集合理解混淆起来,那些花括号是f字串的.

当然,k for k,v in dict是有问题的。当您遍历字典本身时,它会给出键。因此,对于第一次迭代,"this"回来了。您不能将"this"解压缩为两个变量。k, v = "this"

你可以用这个:

代码语言:javascript
复制
d = {"this": "I", "is": "am", "title": "done"}
print(f'the key is {" ".join(d.keys())}')
print(f'the val is {" ".join(d.values())}')

产出:

代码语言:javascript
复制
the key is this is title
the val is I am done

join之所以有效,是因为键和值是字典中的字符串。如果它们不是,您应该将它们转换为:

代码语言:javascript
复制
print(f'the key is {" ".join(map(str, d.values()))}')

对于第一个版本,您也可以使用print(f'the key is {" ".join(d)}')作为默认情况下,字典将在迭代中给出键。

票数 2
EN

Stack Overflow用户

发布于 2022-09-09 10:40:33

我会这样做的,如果你不介意在最后有一个空间,我不是专家。

代码语言:javascript
复制
mydict = {"this": "I", "is": "am", "title": "done"}


def get_str(dict):
    str_a = ""
    str_b = ""
    for k in dict:
        str_a += f"{k} "
        str_b += f"{dict[k]} "
    print(str_a)
    print(str_b)


get_str(mydict)

产出:

代码语言:javascript
复制
this is title 
I am done 
票数 0
EN

Stack Overflow用户

发布于 2022-09-09 10:51:04

密钥的print("The keys are", ' '.join(k for k in dict))

值的print("The keys are", ' '.join(v for k, v in dict.items()))

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73660746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档