将值与键值匹配并获取键

2024-03-29 12:47:54 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我需要这样做: 我需要将列表“check_keys”中的值与字典“parm”中的键值进行匹配,并将匹配的键以相同的顺序存储到新的列表“insert”中

parm = {'f': 'w', 'l': 'b', 'b': 'y', 'u': 'o', 't': 'r', 'r': 'g'}
check_keys = ['r','b','o','g','w','y']
insert = ['t','l','u','r','f','b']

Tags: 列表字典checkkeys键值insert顺序存储parm
3条回答

一种可能的方法是颠倒字典,它可以在线性时间(相对于parm dict的大小)内平均完成。在

一旦字典被颠倒,你搜索到的值就变成了键 现在很容易访问的是每一个钥匙在你的检查钥匙清单。在

rev_parm = dict((v, k) for k, v in parm.items())
insert = [rev_parm[k] for k in check_keys]

花了一些时间,但我想我知道你想做什么。在

如果我是对的,你就不必从值到键反向查字典了。 最简单的办法就是把字典翻过来。在

rparm = dict( (value,key) for key,value in parm.items())

然后匹配数据,例如

^{pr2}$

很抱歉使用了所有这些列表和生成器理解。如果我们不熟悉他们我可以添加经典的for循环版本。在

也许像这样?在

insert = []
for k, v in parm.items():
    if k in check_keys:
        insert.append(k)

或者这个简短的版本:

^{pr2}$

相关问题 更多 >