读书笔记——《Python编程从入门到实践》第六章
这一章主要讲解了字典,包括:
- 如何定义字典
- 如何使用存在在字典里的信息
- 如何访问和修改字典里的元素
- 如何遍历字典
- 集合
字典
创建字典
字典是一系列键值对的集合,字典用放在花括号内的一系列键值对表示,键和值之间使用冒号分隔,键值对之间使用逗号分隔。如下所示:
# 创建一个字典
person = {"name": "freedom", "age": 5}
访问字典中的值
有两种办法可以访问字典中的值。
-
使用方括号表示法,依次指定字典名和放在方括号内的键即可获取键对应的值,如下所示:
person = {"name": "freedom", "age": 5} print(person["name"]) # 输出:freedom
使用方括号访问,若访问不存在的键,则会出错。如下所示:
person = {"name": "freedom", "age": 5} print(person["name1"]) # 命令行输出 Traceback (most recent call last): File ".\map.py", line 3, in <module> print(person["name1"]) KeyError: 'name1'
-
使用
get
方法访问,此方法有如下两种使用方法- get(key),指定要访问的键,若字典中对应的键存在,则返回键对应的值,若键不存在,则返回None,None是一个特殊值。示例如下所示:
# 创建一个字典 person = {"name": "freedom", "age": 5} # 获取字典中的值 print(person.get("name")) # 输出:freedom print(person.get("school")) # 输出:None
- get(key,defaultValue),若字典中存在对应的键,则返回键对应的值,否则返回默认值,如下所示:
# 创建一个字典 person = {"name": "freedom", "age": 5} # 获取字典中的值 print(person.get("name", "幸福小学")) # 输出:freedom print(person.get("school", "幸福小学")) # 输出:幸福小学
- get(key),指定要访问的键,若字典中对应的键存在,则返回键对应的值,若键不存在,则返回None,None是一个特殊值。示例如下所示:
删除键值对
使用del语句可以删除键值对。示例如下所示:
# 创建一个字典
person = {"name": "freedom", "age": 5}
print(person) # 输出:{'name': 'freedom', 'age': 5}
# 删除字典中的键值对
del person["age"]
print(person) # 输出:{'name': 'freedom'}
修改字典中的值
要修改字典中的值,可以依次指定字典名、用方括号括起的键,以及新值即可。如下所示:
# 创建一个字典
person = {"name": "freedom", "age": 5}
print(person) # 输出:{'name': 'freedom', 'age': 5}
# 修改值
person["name"] = "freedom wang"
print(person) # 输出:{'name': 'freedom wang', 'age': 5}
# 添加键值对
person["school"] = "大力小学"
print(person) # 输出:{'name': 'freedom wang', 'age': 5, 'school': '大力小学'}
字典是一个动态结构,可以随时往里添加键值对,其操作如同修改键值对。如上例所示。这表示,当键存在时,即是修改操作,当键不存在时,便是添加键值对操作。
遍历字典
我们知道字典是一系列的键值对,所以遍历字典,又可分为遍历键值对、遍历键和遍历值。
遍历键值对
通过方法items
可以获取到字典的键值对,它返回一个键值对列表。在遍历的时候,可以使用语法for key,value in map.items():
,其中键值对的键会赋予变量key,值会赋予变量value。如下所示:
# 创建一个字典
person = {"name": "freedom", "age": 5}
# 遍历所有键值对
for key,value in person.items():
print(f"{key}:{value}")
# 输出
name:freedom
age:5
遍历键
使用方法keys
可以获取到字典的所有键,返回一个键列表。遍历字典时,默认就时遍历键。如下所示:
# 创建一个字典
person = {"name": "freedom", "age": 5}
# 遍历所有的键
for key in person.keys():
print(key)
# 输出:
name
age
# 直接遍历字典等同于遍历keys方法
for key in person:
print(key)
# 输出
name
age
遍历值
使用方法values
,可以获取到字典的值列表。如下所示:
# 创建一个字典
person = {"name": "freedom", "age": 5}
# 遍历所有的值
for value in person.values():
print(value)
# 输出
freedom
5
集合
集合就是一组各不相同的数据,使用一对花括号来创建集合,并使用逗号来分隔元素。如下所示:
# 创建一个集合
persons = {"freedom", "ali", "freedom"}
print(persons) # 输出:{'freedom', 'ali'}
我们可以看到虽然我们定义persons
集合的时候,定义了两个叫做freedom
的元素,但是输出的时候,就只有一个了,那是因为集合中的元素都是不相同的。
也可以是用set方法来创建集合,传入一个列表。
names = ["freedom", "ali", "freedom"]
print(set(names)) # 输出:{'freedom', 'ali'}