我有一个叫做
基本上它的格式是这样的:
我将尝试查找薪资为X的人的姓名。具体来说,在上面的例子中,假设我正在寻找薪资为288589的人的姓名。我期望找到所有薪资为288589的人的姓名。
我编写了以下通用函数,该函数将接收搜索键和值,并返回符合该键和值条件的人员姓名。
这个方法顺利执行。
data_dict
的字典嵌套字典。以下是它的样子:{'UMANOFF ADAM S': {'total_stock_value': 'NaN', 'loans': 'NaN', 'salary': 288589},
'YEAP SOON': {'total_stock_value': 192758, 'loans': 'NaN', 'salary': 'NaN'},
'PIPER GREGORY F': {'total_stock_value': 880290, 'loans': 1452356, 'salary': 19791},
'Jack S': {'total_stock_value': 88000, 'loans': 'NaN', 'salary': 288589}
}
基本上它的格式是这样的:
{Person Name : Dictionary of that person's attributes}
我将尝试查找薪资为X的人的姓名。具体来说,在上面的例子中,假设我正在寻找薪资为288589的人的姓名。我期望找到所有薪资为288589的人的姓名。
我编写了以下通用函数,该函数将接收搜索键和值,并返回符合该键和值条件的人员姓名。
def search_person_by_attribute(attribute, value):
person_names = []
for person, attributes_dict in data_dict.items():
if attributes_dict[attribute] == value:
person_names.append(person)
return person_names
这个方法顺利执行。
results = search_person_by_attribute("salary", 288589)
print(results)
并打印
['UMANOFF ADAM S','Jack S']
但是我觉得这种写法有点冗长。是否有更好/更短/更符合Python风格的方法呢?
如果您还能提及我的解决方案和您建议的解决方案的效率(以时间复杂度为衡量标准),那将是一个很大的优势。
{salary: (name1, name2)}
? - Chris_Rands