获取字典列表详细信息的函数

Function to get details of list of dictionaries

我创建了一个词典列表。示例:

my_list=[
  {
    "id": "first_host",
    "year": 2022,
    "hosts": ["50.60.70.80"]
  },
.....

我正在尝试定义一个函数来获取每个 ID 列表的这些详细信息。

def get_details(details, host_id):
     return config

我们如何使用它?我的预期 >

get_details(my_list, "first_host")

get_details() 的预期 return 值从问题中不清楚。

我认为这可能是您要找的人,但不确定,因为问题含糊不清。

my_list=[{"id": "first_host", "year": 2022, "size": "16g", "hosts": ["50.60.70.80"]},
         {"id": "second_host", "year": 2023, "size": "17g", "hosts": ["60.70.80.90"]},]

def get_details(details, host_id):
    for detail in details:
        if detail["id"] == host_id:
            return detail
get_details(my_list, "first_host")
> {'id': 'first_host', 'year': 2022, 'size': '16g', 'hosts': ['50.60.70.80']}

你应该可以 filter 出来 -

def get_config(details, host_id):
    req, *_ = filter(lambda entry: entry['id'] == host_id, details)
    return req
print(my_list)
#[{'id': 'first_host', 'year': 2022, 'size': '16g', 'hosts': ['50.60.70.80']},
# {'id': 'second_host', 'year': 2022, 'size': '1g', 'hosts': ['51.60.70.80']}]

print(get_config(my_list, 'first_host'))
# {'id': 'first_host', 'year': 2022, 'size': '16g', 'hosts': ['50.60.70.80']}