【问题标题】:how do i iterate through one dictionaries and return values from another dictionary?我如何遍历一个字典并从另一字典返回值?
【发布时间】:2018-03-09 00:36:13
【问题描述】:

所以,我正在寻找解决此问题的方法 - 我正在处理两个字典,我希望能够传递一个字典的键并遍历对应于的第二个字典的值第一个字典的值。 这是一个例子 -

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"}

输入 - V20LC(其值为“B”) 所以我应该在第二个字典(案例)中查找该值并返回所有具有该值的键。

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

【问题讨论】:

  • 到目前为止你有什么尝试?
  • 你尝试过什么,你在哪里卡住了?执行此操作的“智能”方法可能超出您的范围,但是如果您只知道如何在字典中通过键查找值、在字典值上编写 for 循环并检查字符串中的子字符串,那么有一个非常简单的蛮力解决方案。
  • 我是 python 新手,但这是我尝试过的 - def find_key(dic, val): return [k for k, v in dic.iteritems() if v == val][0] print(find_key(products, "A")) 我只能拿到一把钥匙..
  • 那么,究竟是什么问题呢?你知道如何在products 中查找'V20LC' 的值,不是吗? val = products['V20LC']。然后,您只需遍历字典,检查具有该值的键...
  • 不要尝试将您尝试的内容粘贴到评论中;编辑问题。评论很小,不允许格式化等。

标签: python loops dictionary


【解决方案1】:

让我们做一个很好的函数来做到这一点:

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

如果其中包含 products [x] 的值,这将返回一个键列表

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多