欢迎访问宙启技术站
智能推送

使用Python编写query()函数实现数据的快速查询与筛选

发布时间:2023-12-15 11:06:47

在编写query()函数之前,首先我们需要建立一个数据集。假设我们有一个员工信息的数据集,其中每条记录有以下字段:员工编号,姓名,年龄,性别,职位。

我们可以使用Python的字典来表示每个员工的数据,然后将每个员工的字典存储在一个列表中,以构建整个数据集。以下是一个示例数据集:

employees = [
    {"employee_id": 1, "name": "Alice", "age": 25, "gender": "Female", "position": "Manager"},
    {"employee_id": 2, "name": "Bob", "age": 30, "gender": "Male", "position": "Engineer"},
    {"employee_id": 3, "name": "Charlie", "age": 40, "gender": "Male", "position": "Manager"},
    {"employee_id": 4, "name": "Diana", "age": 35, "gender": "Female", "position": "Engineer"},
    {"employee_id": 5, "name": "Eve", "age": 28, "gender": "Female", "position": "Intern"}
]

接下来,我们可以编写query()函数来实现数据的快速查询与筛选。query()函数接收一个参数query,该参数用于指定查询条件,可以是一个字典,包含要匹配的字段和对应的值。例如,如果我们想查询所有性别为女性的员工,可以使用以下代码调用query()函数:

results = query({"gender": "Female"})

下面是实现query()函数的代码:

def query(query_dict):
    results = []
    for employee in employees:
        match = True
        for key, value in query_dict.items():
            if employee[key] != value:
                match = False
                break
        if match:
            results.append(employee)
    return results

在query()函数中,我们首先定义了一个空列表results,用于存储匹配查询条件的员工数据。

然后,我们遍历数据集中的每个员工数据。对于每个员工,我们使用一个嵌套的循环来检查该员工的每个字段是否与查询条件匹配。

如果找到了一个不匹配的字段,我们将match变量设置为False,并立即跳出内部循环,继续下一个员工的匹配。否则,如果所有字段都匹配,则将该员工添加到结果列表中。

最后,我们返回结果列表。

下面是一个完整的示例,帮助你更好地理解query()函数的用法:

employees = [
    {"employee_id": 1, "name": "Alice", "age": 25, "gender": "Female", "position": "Manager"},
    {"employee_id": 2, "name": "Bob", "age": 30, "gender": "Male", "position": "Engineer"},
    {"employee_id": 3, "name": "Charlie", "age": 40, "gender": "Male", "position": "Manager"},
    {"employee_id": 4, "name": "Diana", "age": 35, "gender": "Female", "position": "Engineer"},
    {"employee_id": 5, "name": "Eve", "age": 28, "gender": "Female", "position": "Intern"}
]

def query(query_dict):
    results = []
    for employee in employees:
        match = True
        for key, value in query_dict.items():
            if employee[key] != value:
                match = False
                break
        if match:
            results.append(employee)
    return results

# 查询所有性别为女性的员工
results = query({"gender": "Female"})
print("查询结果:")
for employee in results:
    print("员工编号:", employee["employee_id"])
    print("姓名:", employee["name"])
    print("年龄:", employee["age"])
    print("性别:", employee["gender"])
    print("职位:", employee["position"])
    print("-----------")

运行上述代码,将输出如下结果:

查询结果:
员工编号: 1
姓名: Alice
年龄: 25
性别: Female
职位: Manager
-----------
员工编号: 4
姓名: Diana
年龄: 35
性别: Female
职位: Engineer
-----------
员工编号: 5
姓名: Eve
年龄: 28
性别: Female
职位: Intern
-----------

通过这个query()函数,我们可以非常方便地根据指定的查询条件筛选数据集中的记录。根据实际需要,可以根据不同的查询条件进行查询。