6 字典
字典可以为各种真实的物体建模,可以创建表示一个任何事物的字典,然后想在其中存储多少信息就存储多少信息。
6.1 创建一个简单的字典
print("下面来创建一个字典:")
# 创建了一个关于人的列表,存储了姓名、性别、国家
person = {'name': 'Charlie Puth', 'sex': 'male', 'country': 'USA'}
print(person['name']) # 使用健来访问相关联的值
print(person['sex'])
print(person['country'])
6.2 使用字典
6.2.1 访问字典
-
在Python中,字典是一系列健—值对,每一个键都与一个值相关,可以使用键来访问与之相关联的值。
-
与键相关联的值可以是数字、字符串、列表乃至字典。
number = {'No': 1, 'words': ['1', '2', '3', '4']} # 创建一个字典,里面包含一个两个健,其中一个是列表 print(number['No']) # 使用健-值访问其中的元素 print("列表为:" + str(number['words'])) # 使用健-值打印这个列表 for value in number['words']: # 遍历这个列表 print(value)
6.2.2 添加健-值对
-
字典是一种动态结构,可以随时在其中添加键-值对,要添加健-值对,可依次指定字典名,用方括号括起和相关联的值。
person = {'name': 'Charlie Puth', 'sex': 'male', 'country': 'USA'} # 创建一个字典 print("原字典内容是:" + str(person)) # 打印字典内容 person['age'] = 32 # 添加两组健-值对 person['career'] = 'singer' print("添加健-值对后,字典内容为:" + str(person)) # 打印添加健-值对后的字典
6.2.3 修改字典中的值
- 要修改字典中的值,可以依次指定字典名,用方括号括起的健以及与该健相关联的新值。
print("尝试修改字典:")
person = {'name': 'Charlie Puth', 'sex': 'male', 'country': 'USA'} # 创建一个字典
print("打印原字典:" + str(person)) # 打印原字典
person['name'] = 'Little Mix' # 修改name健对应的值
person['sex'] = 'female' # 修改sex健对应的值
print("修改过后的字典是:" + str(person)) # 打印修改过后的字典
6.2.4 删除健-值对
-
对于字典中不再需要的信息,可使用del语句将相应的健-值对彻底删除。
-
使用del语句时,必须指定要删除的字典名和要删除的键名。
print("尝试删除字典中的键:") person = {'name': 'Charlie Puth', 'sex': 'male', 'country': 'USA'} # 创建一个字典 print("打印原字典:" + str(person)) # 打印原字典 del person['sex'] # 删除键sex print("删除过后的字典是:" + str(person)) # 打印删除过后的字典
6.3 遍历字典
6.3.1 遍历字典中的键-值对
-
使用for循环来遍历字典
print("尝试用for循环遍历字典:") person = {'name': 'Charlie Puth', 'sex': 'male', 'country': 'USA'} # 创建一个字典 for key, value in person.items(): # 使用了方法item(),它放回一个键-值队列表 # 接下来,for循环依次将每个键-值存储到指定的两个变量中。 print("\nkey:" + key) print("value:" + value)
6.3.2 遍历字典中的所有键
-
在不需要用到字典中的值时,keys( )方法很有用,使用它可以遍历字典中所有的键;
print("尝试遍历字典的键:") person = {'name': 'Charlie Puth', 'sex': 'male', 'country': 'USA'} # 创建一个字典 print("在字典中,有以下一些键:") for key in person.keys(): # 使用方法keys()遍历字典的键 print(key.title()) print("与之对应的值是:" + person[key]) # 也可以通过键来获取值
-
使用sorted( )函数来获取按照特定顺序排列的值
person = {'name': 'Charlie Puth', 'sex': 'male', 'country': 'USA', 'age': 32, 'career': 'singer'} print("按照特定的顺序打印键:") for key in sorted(person.keys()): # 使用函数sorted() print(key.title())
6.3.3 遍历字典中的所有值
-
也可以使用方法value( )来遍历字典的列表;
print("尝试遍历一个链表中的所有值:") print("下面是字典中的值") for value in person.values(): # 使用方法values()来遍历字典的值 print(value)
-
set( )可以让Python找出列表中独一无二的元素。
person = {'name': 'Charlie Puth', 'sex': 'male', 'country': 'USA', 'age': 32, 'career': 'singer', 'sec': 'male'} # 创建一个字典,具有两个相同的值 print(person) for value in set(person.values()): # 使用set()函数来处理相同的值 print(value)
6.4 嵌套
6.4.1 字典列表
-
可以将一系列同一类型的字典放在一个列表中。
print("尝试着创建一个字典列表:") person_1 = {'name': 'Tom', 'sex': 'male', 'country': 'UK'} person_2 = {'name': 'Jack', 'sex': 'male', 'country': 'USA'} person_3 = {'name': 'Li ping', 'sex': 'female', 'country': 'CH'} persons = [person_1, person_2, person_3] for person in persons: # for语句打印这个字典列表 print(person)
6.4.2 在字典中存储字典
people = {'person_1': {'name': 'Tom', 'sex': 'male', 'country': 'UK'},
'person_2': {'name': 'Jack', 'sex': 'male', 'country': 'USA'},
'person_3': {'name': 'Li ping', 'sex': 'female', 'country': 'CH'}
}
for person, in_fo in people.items(): # 使用for循环来遍历这个字典,将健传给person,将值传给in_fo
print("\nusername:" + person) # 打印健名
msg = in_fo['name'] + ' ' + in_fo['sex'] + ' ' + in_fo['country'] # 将被包含字典中的值组成一个字符串
print(msg) # 输出这个字符串