📜  在 dict python 中搜索(1)

📅  最后修改于: 2023-12-03 15:23:08.204000             🧑  作者: Mango

在 dict python 中搜索

在 Python 中,dict 是一个非常常用的数据类型。它提供了一种可变容器,用于存储键-值映射的关系。当使用 dict 时,我们有时需要根据某个条件来搜索其中的键或值。本文将介绍如何在 dict 中进行搜索操作。

搜索 dict 的键

要搜索 dict 中的键,可以使用 in 关键字来判断键是否在 dict 中。例如,我们有一个包含学生信息的 dict 如下:

students = {'Alice': 90, 'Bob': 85, 'Charlie': 80, 'David': 75}

要查找某个学生是否在 dict 中,可以使用 in 操作符:

if 'Alice' in students:
    print("Alice's score is: ", students['Alice'])
else:
    print("Alice is not in the class.")

输出:

Alice's score is:  90

如果要查找某个成绩是否在 dict 中,可以使用 dict.values() 方法来获取所有的值,然后使用 in 操作符来判断:

if 80 in students.values():
    print("There is a student whose score is 80.")
else:
    print("There is no student whose score is 80.")

输出:

There is a student whose score is 80.
搜索 dict 的键和值

如果要根据值来查找 dict 中的键,可以使用 dict.items() 方法来获取所有的键-值对,然后使用 for 循环和条件判断来搜索。例如,要查找成绩为 80 的学生的名字:

for name, score in students.items():
    if score == 80:
        print("The student with score 80 is:", name)

输出:

The student with score 80 is: Charlie
模糊搜索

如果要进行模糊搜索,可以使用 Python 的正则表达式模块 re 来编写对应的模式,然后应用到 dict 中的键或值上。例如,我们要搜索所有以 A 开头的学生的名字:

import re

pattern = re.compile("^A.*")
for name in students.keys():
    if pattern.search(name):
        print(name)

输出:

Alice

同理,要搜索所有成绩大于等于 80 分的学生,可以编写如下代码:

pattern = re.compile("^([8-9]|[1-9][0-9])$")
for score in students.values():
    if pattern.search(str(score)):
        print(score)

输出:

90
80

以上就是在 dict 中进行搜索操作的介绍。希望对你有帮助!