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” 来获取具体的年龄和考试成绩。