繁体   English   中英

我正在尝试从字典列表中获取两个键

[英]I am trying to get both keys from a list of dictionaries

我试图在找到密钥时打印出一条消息,以及另一个密钥的相应值。 这是我到目前为止所拥有的

l = [{'a': "dog", 'b': "black"}, {'a': "cat", 'b': "yellow"}, {'a': "bird", 'b': "blue"}] 

def search(name, value): 
    for k in list: 
        if k['brand'] == name: 
            print("The dog was found with color" + str(k['age'] == value)) 
search('dog','')

我正在尝试将 output 做到这一点

The dog was found and the color is black. 
l = [{'a': "dog", 'b': "black"}, {'a': "cat", 'b': "yellow"}, {'a': "bird", 'b': "blue"}]

def search_dict(l, name, key='b'):
    for dic in l:
        if name in dic.values():
            print(f"{name} was found with color {dic[key]}")

search_dict(l, 'dog')
>>> dog was found with color black

那么这里会发生什么:

  1. 首先创建一个带有字典的列表( l
  2. function 获取包含字典的列表,在每个字典的值中查找的名称和字典颜色的键,默认key='b' 如果name在字典的值之一中,则它会根据key='b'打印以给定颜色找到的那个。
  3. function 返回None ,它只打印找到的内容。

为什么要输入键:

l = [{'animal': 'dog', 'color':'brown'}, {'animal': 'dog', 'color':'red'},{'animal': 'cat', 'color':'brown'}]

search_dict(l, name='dog', key='color')
>>> dog was found with color brown
>>> dog was found with color red

如果您想检查是否存在同时包含“动物”和“颜色”的条目,我认为这段代码应该可以工作:

l = [{'a': "dog", 'b': "black"}, {'a': "cat", 'b': "yellow"}, {'a': "bird", 'b': "blue"}] 

def search(animal, color): 
    for k in l: 
        if k['a'] == animal and k['b'] == color: 
            print("The {a} was found with color {b}".format(**k)) 

search('dog', 'black')

给你:

The dog was found with color black

您只需要循环浏览列表并检查“a”和“b”的条目是否符合要求。

就我个人而言,我会使用不同的名称,而不仅仅是“a”和“b”,例如:

l = [{'animal': "dog", 'color': "black"}, {'animal': "cat", 'color': "yellow"}, {'animal': "bird", 'color': "blue"}] 

但这取决于您的要求...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM