字典(Dictionary)是 Python 中常用的数据结构之一,用于存储键值对(key-value pairs)。字典的特点是可变的、无序的,且键(key)必须是唯一的,但值(value)可以重复。
在字典中,每个键都与一个值相关联,可以使用键来访问对应的值。字典在 Python 中非常灵活,适用于各种不同的应用场景。
{}
创建字典:# 使用花括号创建一个字典
my_dict = {'apple': 2, 'banana': 3, 'orange': 4}
print(my_dict)
输出:
{'apple': 2, 'banana': 3, 'orange': 4}
dict()
函数创建字典:# 使用 dict() 函数创建一个字典
my_dict = dict(apple=2, banana=3, orange=4)
print(my_dict)
输出:
{'apple': 2, 'banana': 3, 'orange': 4}
zip()
函数创建字典:# 使用列表和 zip() 函数创建字典
fruits = ['apple', 'banana', 'orange']
quantities = [2, 3, 4]
my_dict = dict(zip(fruits, quantities))
print(my_dict)
输出:
{'apple': 2, 'banana': 3, 'orange': 4}
字典可以嵌套,也就是说字典的值可以是另一个字典。这种嵌套的结构允许我们在一个字典中存储更复杂的数据信息。下面是示例:
# 嵌套字典示例
students = {
'Alice': {
'age': 25,
'major': 'Computer Science',
'grades': {'math': 90, 'english': 85, 'history': 88}
},
'Bob': {
'age': 23,
'major': 'Engineering',
'grades': {'math': 88, 'english': 82, 'history': 80}
}
}
print(students)
示例中students
字典包含了两个键值对,每个键对应一个学生的信息,其中每个学生的信息又是一个字典,包含年龄、专业和成绩等键值对。这种嵌套结构可以更灵活地组织和管理数据。
字典中的键必须是唯一的。在Python的字典中,每个键都必须是独一无二的,即不能有重复的键。如果你试图使用已经存在的键来添加新的键值对,Python会覆盖原有键的值,而不会报错。
下面是示例说明字典中键必须唯一的特性:
my_dict = {'name': 'Alice', 'age': 30, 'name': 'Bob'}
print(my_dict)
输出结果会覆盖重复的键值对:
{'name': 'Bob', 'age': 30}
示例中'name'
键出现了两次,但是由于键必须唯一,Python只会保留最后一次出现的键值对。
在 Python 中,可以使用键来获取字典中的对应值。
# 定义一个字典
my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'}
# 使用键来获取对应的值
name = my_dict['name']
age = my_dict['age']
city = my_dict['city']
print("Name:", name)
print("Age:", age)
print("City:", city)
输出结果将会是:
Name: Alice
Age: 30
City: New York
注意:如果键不存在于字典中,Python 将会引发 KeyError 错误。因此,在使用键来获取值之前,最好先检查键是否存在于字典中,或者使用 get()
方法来安全地获取值。
要获取字典中的值,可以使用字典的键来访问对应的值。
# 定义一个字典
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
# 获取字典中特定键的值
name = my_dict['name']
age = my_dict['age']
city = my_dict['city']
print("Name:", name)
print("Age:", age)
print("City:", city)
这将打印出:
Name: John
Age: 30
City: New York
注意,如果尝试访问不存在的键,将会引发 KeyError
错误。因此,在访问之前最好先检查键是否存在,可以使用 in
运算符来检查键是否存在于字典中,或者使用 get()
方法安全地获取值。
要使用键更新字典中的值,可以直接通过键来赋新值。如果键不存在,则会创建一个新的键值对。
# 定义一个字典
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
# 使用键更新字典中的值
my_dict['age'] = 31 # 更新年龄
my_dict['city'] = 'San Francisco' # 更新城市
print(my_dict)
这将输出更新后的字典:
{'name': 'John', 'age': 31, 'city': 'San Francisco'}
通过指定已存在的键来更新字典中的值,Python会将该键对应的值更新为新值。如果键不存在,则会添加新的键值对到字典中。
使用 del
语句可以删除字典中指定键的元素。
# 定义一个字典
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
# 删除字典中的元素
del my_dict['age'] # 删除键为 'age' 的元素
print(my_dict)
示例中我们使用 del
删除了字典 my_dict
中键为 'age'
的元素。输出将是字典中删除指定元素后的结果。
下面是关于这些函数和方法的示例:
len(dict)
:my_dict = {'a': 1, 'b': 2, 'c': 3}
print(len(my_dict)) # 输出:3
str(dict)
:my_dict = {'a': 1, 'b': 2, 'c': 3}
print(str(my_dict)) # 输出:{'a': 1, 'b': 2, 'c': 3}
type(dict)
:my_dict = {'a': 1, 'b': 2, 'c': 3}
print(type(my_dict)) # 输出:<class 'dict'>
字典是 Python 中常用的数据类型之一,具有键-值对的形式存储数据。下面是一些常用的字典基础方法:
清空字典中的所有项。
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
my_dict.clear()
print(my_dict) # 输出: {}
返回字典的一个副本。
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
new_dict = my_dict.copy()
获取指定键的值,如果键不存在于字典中,则返回默认值 None 或指定的默认值。
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
print(my_dict.get('name')) # 输出: John
print(my_dict.get('gender', 'Unknown')) # 输出: Unknown
以列表返回可遍历的 (键, 值) 元组数组。
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
print(my_dict.items()) # 输出: dict_items([('name', 'John'), ('age', 30), ('city', 'New York')])
返回一个字典所有的键。
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
print(my_dict.keys()) # 输出: dict_keys(['name', 'age', 'city'])
返回一个字典所有的值。
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
print(my_dict.values()) # 输出: dict_values(['John', 30, 'New York'])
删除字典给定键 key 所对应的值,返回值为被删除的值。如果键不存在,且给了默认值,则返回默认值,否则抛出 KeyError 异常。
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
print(my_dict.pop('age')) # 输出: 30
print(my_dict) # 输出: {'name': 'John', 'city': 'New York'}
随机返回并删除字典中的一对键和值,如果字典已经为空,却调用了此方法,就报出 KeyError 异常。
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
print(my_dict.popitem()) # 输出: ('city', 'New York')
print(my_dict) # 输出: {'name': 'John', 'age': 30}
sorted()
函数可以用于对字典的键或值进行排序,并返回一个排序后的列表。
my_dict = {'b': 3, 'a': 1, 'c': 2}
# 对字典的键进行排序,并返回排序后的键列表
sorted_keys = sorted(my_dict.keys())
print(sorted_keys) # 输出: ['a', 'b', 'c']
# 对字典的值进行排序,并返回排序后的值列表
sorted_values = sorted(my_dict.values())
print(sorted_values) # 输出: [1, 2, 3]
# 对字典的键值对进行排序,按照键的字母顺序排序
sorted_items = sorted(my_dict.items())
print(sorted_items) # 输出: [('a', 1), ('b', 3), ('c', 2)]
在排序时,如果希望按照值进行排序,则可以利用 key
参数指定排序的依据。例如,要按照字典的值的大小进行排序:
# 按照字典的值的大小进行排序
sorted_by_value = sorted(my_dict.items(), key=lambda x: x[1])
print(sorted_by_value) # 输出: [('a', 1), ('c', 2), ('b', 3)]
在示例中key=lambda x: x[1]
表示按照每个元组的第二个元素(即值)进行排序。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。