Python中的字典与成员运算符初步探究

  • Post category:Python

Python中的字典与成员运算符初步探究

字典是Python中一种非常重要的数据结构,它可以将多个元素以键-值形式存储,并且可以通过键快速定位对应的值。字典是用花括号 {} 来定义,键与值之间用冒号 : 分隔,不同键-值对之间用逗号 , 分隔。例如:

my_dict = {"name": "Alice", "age": 25, "city": "Beijing"}

在字典中,可以通过键来获取对应的值,例如:

name = my_dict["name"]  # 获取"name"对应的值,即"Alice"

此外,还可以使用成员运算符 in 来判断某个键是否在字典里,例如:

if "name" in my_dict:
    print("name is in my_dict")

如果键存在,则会输出 name is in my_dict

字典的常用操作

除了上述案例中的字典创建、键值获取和成员运算符等操作外,字典还有以下常用操作:

  • 添加新项:可以通过 直接给字典添加新的键值对,例如:

    my_dict = {"name": "Alice", "age": 25, "city": "Beijing"}
    my_dict["gender"] = "female" # 给字典添加新项

  • 删除项:可以使用 del 关键字删除字典中的指定项,例如:

    my_dict = {"name": "Alice", "age": 25, "city": "Beijing"}
    del my_dict["age"] # 删除age项

  • 更新项:可以使用 直接更新字典中的某一项,例如:

    my_dict = {"name": "Alice", "age": 25, "city": "Beijing"}
    my_dict["age"] = 26 # 将age的值更新为26

成员运算符的应用

上述已经提到了成员运算符 in 可以判断某个键是否在字典里。另外,字典中还有一个关键字 keys() 可以用来获取所有的键,返回的是一个 list 类型。例如:

my_dict = {"name": "Alice", "age": 25, "city": "Beijing"}
print(my_dict.keys())  # 输出所有的键

输出结果如下:

dict_keys(['name', 'age', 'city'])

可以使用 in 判断某个键是否在 keys() 返回的列表中,例如:

my_dict = {"name": "Alice", "age": 25, "city": "Beijing"}
if "name" in my_dict.keys():
    print("name is in my_dict")

输出结果为: name is in my_dict

示例说明

示例一:利用字典统计一段文本中每个单词出现的次数

假设有一段文本如下:

text = "The quick brown fox jumps over the lazy brown dog"

可以先将这段文本转换为一个列表,然后遍历列表,利用字典记录每个单词出现的次数,代码如下:

text = "The quick brown fox jumps over the lazy brown dog"
words = text.split(" ")  # 将文本分割为单词列表
word_count = {}  # 用来记录每个单词出现的次数
for word in words:
    if word not in word_count:
        word_count[word] = 1  # 第一次出现,默认出现次数为1
    else:
        word_count[word] += 1  # 不是第一次出现,累加出现次数
print(word_count)

输出结果如下:

{'The': 1, 'quick': 1, 'brown': 2, 'fox': 1, 'jumps': 1, 'over': 1, 'the': 1, 'lazy': 1, 'dog': 1}

可以看到,输出结果是一个字典,其中每个单词对应的值就是它出现的次数。

示例二:字典的嵌套

一个字典中的值也可以是另外一个字典,这被称为字典的嵌套。例如,可以定义一个字典来记录学生的姓名、年龄和考试成绩:

students = {
    "Alice": {"age": 18, "score": 95},
    "Bob": {"age": 19, "score": 88}
}

可以通过先获取学生信息,再通过字典嵌套的方式获取具体的信息,例如:

name = "Alice"
age = students[name]["age"]  # 获取年龄
score = students[name]["score"]  # 获取考试成绩

这里通过字典嵌套的方式,先获取到名为 “Alice” 的学生信息,然后再根据键 “age” 和 “score” 来获取具体的年龄和考试成绩。