Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何遍历一个字典并从另一个字典返回值?_Python_Loops_Dictionary - Fatal编程技术网

Python 如何遍历一个字典并从另一个字典返回值?

Python 如何遍历一个字典并从另一个字典返回值?,python,loops,dictionary,Python,Loops,Dictionary,因此,我正在寻找这个问题的解决方案-我有两个正在使用的字典,我希望能够传递一个字典的键,并遍历与第一个字典的值相对应的第二个字典的值。 这是一个例子- products = {"V14LC": "A", "V15LC": "A", "V20LC": "B", "V20LCACSPV": "B", "VPRC": "A", "V25LC": "B,I", "V28LC": "B,28,I"} cases = {"case1": "BDH", "case5": "BCD", "case5c": "

因此,我正在寻找这个问题的解决方案-我有两个正在使用的字典,我希望能够传递一个字典的键,并遍历与第一个字典的值相对应的第二个字典的值。 这是一个例子-

products = {"V14LC": "A", "V15LC": "A", "V20LC": "B", "V20LCACSPV": "B", "VPRC": "A", "V25LC": "B,I", "V28LC": "B,28,I"}

cases = {"case1": "BDH", "case5": "BCD", "case5c": "BCC", "case8D": "DD", "case8DC": "CDD", "case12": "CDH", "case14": "DEH", "case15": "CCDD"}
input-V20LC(它的值为“B”)因此我应该在第二个字典(cases)中查找该值,并返回所有具有该值的键


需要输出-case1、case5、case5c(因为它有一个“b”作为其值的子字符串)。

让我们制作一个很好的函数来实现这一点:

def search_dict (x): return [key for key, value in cases.items() if products [x] in value]

如果键中包含产品[x]的值,则会返回一个键列表

def search_dict (x): return [key for key, value in cases.items() if products [x] in value]

如果钥匙中有产品[x]的价值,则返回钥匙列表

到目前为止您尝试了什么?您尝试了什么?您在哪里卡住了?实现这一点的“智能”方法可能超出您的能力范围,但如果您只知道如何在字典中按键查找值,为字典值编写
循环,并检查字符串中的子字符串,则有一个非常简单的暴力解决方案。我对python不熟悉,但我尝试了-def find_key(dic,val):return[k代表k,v在dic.iteritems()中,如果v==val][0]打印(查找键(产品,“A”))我只能得到一个键。那么,到底是什么问题呢?你知道如何在
产品中查找
'V20LC'
的值,没有?
val=products['V20LC']
。然后,您只需在字典中反复检查具有该值的键……不要尝试将您尝试的内容粘贴到注释中;编辑问题。注释很小,不允许格式化,等等。到目前为止您尝试了什么?您尝试了什么,您卡在哪里了?智能实现这一点的方法可能超出您的能力范围,但有一个非常简单的暴力解决方案,前提是您只知道如何通过字典中的键查找值,为字典值编写
循环,并检查字符串中的子字符串。我对python不熟悉,但我尝试了以下内容-def find_key(dic,val):返回[k代表dic中的k,v.iteritems()如果v==val][0]打印(find_key(products,“A”)),我只能得到一个键。那么,到底是什么问题呢?你知道如何在
产品中查找
'V20LC'
,否?
val=products['V20LC']
。然后,您只需在字典中重复检查具有该值的键……不要尝试将您尝试的内容粘贴到注释中;编辑问题。注释很小,不允许格式化,等等。