Python3字典是一个无序、可变、有键key的数据类型,由键值对构成。可以通过key快速查询value,并且key必须是唯一的。字典是通过大括号{ }来进行定义,键值对之间使用冒号:来分隔,每个键值对之间使用逗号,来分隔。
Python3 字典的使用及特性
在Python3中,字典(dictionary)是一种基于键的映射数据类型。字典中的每个元素都由一个键和一个值组成,其中,键必须是唯一的。与列表和元组等数据类型不同的是,字典中的元素没有固定的顺序。
字典的创建和赋值
创建一个空字典可以直接使用花括号{},也可以使用dict()
函数:
empty_dict = {}
empty_dict2 = dict()
当给字典赋值时,可以通过键来指定相应的值:
person = {"name": "Tom", "age": 24, "gender": "male"}
person["name"] = "Jerry" # 修改键name对应的值为Jerry
person["height"] = 178 # 新增键height,对应的值为178
在以上示例中,我们创建了一个名为person
的字典,其中包含三个键值对。当我们通过键来赋值时,如果该键已经存在于字典中,则将对应的值进行修改;如果该键不存在,则新增该键值对。
字典的增、删、改、查
增加元素
在前面的例子中,我们已经提到了如何向字典中添加元素,即通过键来指定相应的值。除此之外,还可以使用update()
方法批量添加元素:
person.update({"weight": 65, "hobby": "swimming"})
print(person) # {'name': 'Jerry', 'age': 24, 'gender': 'male', 'height': 178, 'weight': 65, 'hobby': 'swimming'}
在以上示例中,我们使用update()
方法向字典中添加了两个键值对。
删除元素
删除字典中的元素可以使用del
关键字或pop()
方法。使用del
删除元素时,需要指定要删除的键:
del person["hobby"]
print(person) # {'name': 'Jerry', 'age': 24, 'gender': 'male', 'height': 178, 'weight': 65}
使用pop()
方法可以删除指定键值对,并返回该键对应的值:
age = person.pop("age")
print(age) # 24
print(person) # {'name': 'Jerry', 'gender': 'male', 'height': 178, 'weight': 65}
在以上示例中,我们删除了键为”hobby”的键值对,并使用pop()
方法删除了键为”age”的键值对,同时将返回的值赋值给了变量age
。
修改元素
在前面的示例中已经展示了如何通过键来修改相应的值。除此之外,也可以使用update()
方法来批量修改元素:
person.update({"weight": 70, "gender": "female"})
print(person) # {'name': 'Jerry', 'gender': 'female', 'height': 178, 'weight': 70}
在以上示例中,我们使用update()
方法批量修改了键”weight”和”gender”对应的值。
查询元素
查询字典中的元素可以通过键来获取相应的值:
print(person["name"]) # Jerry
print(person.get("age", "unknown")) # 如果键值对不存在,则返回"unknown",否则返回对应的值
在以上示例中,我们使用键”name”和”age”来获取相应的值。如果字典中不存在指定的键,则会抛出KeyError异常;而get()
方法可以避免这种情况的发生,如果键不存在,则返回指定的默认值。
字典的遍历
遍历字典中的元素可以使用for
循环,循环的变量可以指定为键、值或键值对:
for key in person:
print(key, person[key])
for value in person.values():
print(value)
for key, value in person.items():
print(key, value)
在以上示例中,我们对字典person
进行了三种不同的遍历方式,分别输出了键、值或键值对。
字典的特性
在使用字典时需要注意,由于字典是一种无序的数据类型,因此不能通过索引来访问元素。此外,由于字典中的键必须是唯一的,因此如果使用重复的键存储不同的值,后面的值会覆盖前面的值:
scores = {"Tom": 80, "Jerry": 85, "Tom": 90}
print(scores) # {'Tom': 90, 'Jerry': 85}
在以上示例中,我们试图使用键”Tom”存储不同的值,但由于键已经存在于字典中,最后存储的值为90。
总结
Python3中的字典是一种基于键的映射数据类型,用于存储键值对。字典中的键必须是唯一的,而键值对没有固定的顺序。可以通过键来操作字典中的元素,包括增加、删除、修改和查询操作。同时,还可以通过for
循环遍历字典中的元素。