为了账号安全,请及时绑定邮箱和手机立即绑定

如果一个键存在更多值,如何在python词典中为特定值打印键?

如果一个键存在更多值,如何在python词典中为特定值打印键?

SMILET 2021-04-07 17:15:19
 dic = {'key1': ["value1",  "value2"],        'key2': ["value4", "value5"] } "value4" in [x for v in dic.values() for x in v] >> True我想打印value4的键,而不是True
查看完整描述

3 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

python字典经过优化,可以通过键而不是反向键来访问值,因此,这里没有比遍历dict中的所有条目更好的选择了:


for key, values in dic.items():

    if 'value4' in values:

        print(key)

        break


查看完整回答
反对 回复 2021-04-27
?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

对于一个孤立的电话,您应该迭代dic和break按@ IvayloStrandjev的解决方案。


对于重复的调用,最好反转字典以保持O(1)查找的复杂性。假设您的值不重叠:


dic = {'key1': ["value1",  "value2"],

       'key2': ["value4", "value5"]}


dic_reverse = {w: k for k, v in dic.items() for w in v}


print(dic_reverse)


{'value1': 'key1', 'value2': 'key1', 'value4': 'key2', 'value5': 'key2'}

然后,您可以通过检索密钥dic_reverse.get('value4', None)。


查看完整回答
反对 回复 2021-04-27
?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

不确定是否要这样做,但您可以在这里-

[k for k, v in dic.iteritems() for i in v if i == "value1"]

让我知道这是否解决了问题。


查看完整回答
反对 回复 2021-04-27
  • 3 回答
  • 0 关注
  • 198 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号