2024-03-29 12:47:54 发布
网友
假设我需要这样做: 我需要将列表“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']
一种可能的方法是颠倒字典,它可以在线性时间(相对于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())
然后匹配数据,例如
很抱歉使用了所有这些列表和生成器理解。如果我们不熟悉他们我可以添加经典的for循环版本。在
也许像这样?在
insert = [] for k, v in parm.items(): if k in check_keys: insert.append(k)
或者这个简短的版本:
一种可能的方法是颠倒字典,它可以在线性时间(相对于parm dict的大小)内平均完成。在
一旦字典被颠倒,你搜索到的值就变成了键 现在很容易访问的是每一个钥匙在你的检查钥匙清单。在
花了一些时间,但我想我知道你想做什么。在
如果我是对的,你就不必从值到键反向查字典了。 最简单的办法就是把字典翻过来。在
然后匹配数据,例如
^{pr2}$很抱歉使用了所有这些列表和生成器理解。如果我们不熟悉他们我可以添加经典的for循环版本。在
也许像这样?在
或者这个简短的版本:
^{pr2}$相关问题 更多 >
编程相关推荐