Python - 访问字典项
访问字典项
在 Python 中访问 dictionary 项涉及从 dictionary 数据结构中检索与特定键关联的值。Dictionary 由键值对组成,其中每个键是唯一的,并映射到对应的值。通过提供相应的键来访问 dictionary 项,可以检索这些值。
Python 中有多种访问 dictionary 项的方式,包括 −
- 使用方括号 []
- get() 方法
- 使用循环遍历 dictionary
- 或者特定方法如 keys()、values() 和 items()
我们将详细讨论每种方法,以了解如何从 dictionary 中访问和检索数据。
使用方括号 [] 访问字典项
在 Python 中,方括号 [] 用于创建列表、从列表或其他可迭代对象(如字符串、元组或 dictionary)中访问元素,以及列表推导式。
我们可以通过在方括号内提供键来使用方括号访问 dictionary 项。这将检索与指定键关联的值。
示例 1
在以下示例中,我们定义了一个名为 "capitals" 的 dictionary,其中每个键代表一个州,其对应的值代表首府城市。
然后,我们使用各自的键 'Gujarat' 和 'Karnataka' 从 dictionary 中访问并检索 Gujarat 和 Karnataka 的首府城市 −
capitals = {"Maharashtra":"Mumbai", "Gujarat":"Gandhinagar", "Telangana":"Hyderabad", "Karnataka":"Bengaluru"}
print ("Capital of Gujarat is : ", capitals['Gujarat'])
print ("Capital of Karnataka is : ", capitals['Karnataka'])
它将产生以下输出 −
Capital of Gujarat is: Gandhinagar Capital of Karnataka is: Bengaluru
示例 2
如果方括号内给定的键在 dictionary 对象中不存在,Python 将引发 KeyError −
capitals = {"Maharashtra":"Mumbai", "Gujarat":"Gandhinagar", "Telangana":"Hyderabad", "Karnataka":"Bengaluru"}
print ("Captial of Haryana is : ", capitals['Haryana'])
得到的错误如下 −
print ("Captial of Haryana is : ", capitals['Haryana'])
~~~~~~~~^^^^^^^^^^^
KeyError: 'Haryana'
使用 get() 方法访问字典项
Python 的 dict class 中的 get() 方法用于检索与指定 key 关联的 value。如果在 dictionary 中未找到该 key,它会返回默认值(通常是 None),而不是引发 KeyError。
我们可以通过将 key 指定为参数来使用 get() 方法访问 dictionary 项。如果 key 存在于 dictionary 中,该方法返回关联的 value;否则,它返回默认值,通常是 None,除非另有指定。
语法
以下是 Python 中 get() 方法的语法 −
Val = dict.get("key")
其中,key 是用作 dictionary 对象中 key 的 immutable 对象。
示例 1
在下面的示例中,我们定义了一个名为 "capitals" 的 dictionary,其中每个 key-value pair 将一个州映射到其首府。然后,我们使用 get() 方法检索 "Gujarat" 和 "Karnataka" 的首府 −
capitals = {"Maharashtra":"Mumbai", "Gujarat":"Gandhinagar", "Telangana":"Hyderabad", "Karnataka":"Bengaluru"}
print ("Capital of Gujarat is: ", capitals.get('Gujarat'))
print ("Capital of Karnataka is: ", capitals.get('Karnataka'))
我们得到如下输出 −
Capital of Gujarat is: Gandhinagar Capital of Karnataka is: Bengaluru
示例 2
与 "[]" operator 不同,get() 方法在未找到 key 时不会引发错误;它返回 None −
capitals = {"Maharashtra":"Mumbai", "Gujarat":"Gandhinagar", "Telangana":"Hyderabad", "Karnataka":"Bengaluru"}
print ("Capital of Haryana is : ", capitals.get('Haryana'))
它将产生以下输出 −
Capital of Haryana is : None
示例 3
get() 方法接受一个可选的字符串参数。如果提供了该参数,并且未找到 key,则此字符串将成为返回值 −
capitals = {"Maharashtra":"Mumbai", "Gujarat":"Gandhinagar", "Telangana":"Hyderabad", "Karnataka":"Bengaluru"}
print ("Capital of Haryana is : ", capitals.get('Haryana', 'Not found'))
执行上述代码后,我们得到以下输出 −
Capital of Haryana is: Not found
访问字典键
在 dictionary 中,keys 是与每个 value 关联的唯一标识符。它们充当标签或索引,允许您访问和检索对应的 value。Keys 是 immutable 的,这意味着一旦分配就不能更改。它们必须是 immutable 数据类型,例如字符串、数字或元组。
我们可以使用 keys() 方法访问 Python 中的 dictionary keys,该方法返回一个包含 dictionary 中所有 keys 的 view object。
示例
在这个示例中,我们使用 keys() 方法从 "student_info" dictionary 中检索所有 keys −
# 创建一个带有 keys 和 values 的 dictionary
student_info = {
"name": "Alice",
"age": 21,
"major": "Computer Science"
}
# 使用 keys() 方法访问所有 keys
all_keys = student_info.keys()
print("Keys:", all_keys)
以上代码的输出如下 −
Keys: dict_keys(['name', 'age', 'major'])
访问字典值
在字典中,值是与每个唯一键关联的数据。它们代表存储在字典中的实际信息,可以是任何数据类型,例如字符串、整数、列表、其他字典等。字典中的每个键映射到一个特定值,形成键值对。
我们可以使用以下方式在 Python 中访问字典值 −
方括号 ([]) − 通过在括号内提供键。
get() 方法 − 通过调用该方法并将键作为参数传递,可选地提供默认值。
values() 方法 − 返回一个视图对象,包含字典中的所有值
示例 1
在本示例中,我们使用方括号直接访问与键 "name" 和 "age" 关联的值 −
# 创建包含学生信息的字典
student_info = {
"name": "Alice",
"age": 21,
"major": "Computer Science"
}
# 使用方括号访问字典值
name = student_info["name"]
age = student_info["age"]
print("Name:", name)
print("Age:", age)
上述代码的输出如下 −
Name: Alice Age: 21
示例 2
在这里,我们使用 get() 方法检索与键 "major" 关联的值,并为键 "graduation_year" 提供默认值 "2023" −
# 创建包含学生信息的字典
student_info = {
"name": "Alice",
"age": 21,
"major": "Computer Science"
}
# 使用 get() 方法访问字典值
major = student_info.get("major")
# 如果键不存在则提供默认值
grad_year = student_info.get("graduation_year", "2023")
print("Major:", major)
print("Graduation Year:", grad_year)
我们得到的结果如下 −
Major: Computer Science Graduation Year: 2023
示例 3
现在,我们使用 values() 方法从字典 "student_info" 中检索所有值 −
# 创建包含键和值的字典
student_info = {
"name": "Alice",
"age": 21,
"major": "Computer Science"
}
# 使用 values() 方法访问所有值
all_values = student_info.values()
print("Values:", all_values)
得到的结果如下所示 −
Values: dict_values(['Alice', 21, 'Computer Science'])
使用 items() 函数访问字典项
Python 中的 items() 函数用于返回一个视图对象,该对象显示字典的键值元组对列表。
这个视图对象可以用于同时迭代字典的键和值,从而便于在单个循环中访问键和值。
示例
在以下示例中,我们使用 items() 函数从字典 "student_info" 中检索所有键值对 −
# 创建包含学生信息的字典
student_info = {
"name": "Alice",
"age": 21,
"major": "Computer Science"
}
# 使用 items() 方法获取键值对
all_items = student_info.items()
print("Items:", all_items)
# 迭代键值对
print("Iterating through key-value pairs:")
for key, value in all_items:
print(f"{key}: {value}")
上述代码的输出如下 −
Items: dict_items([('name', 'Alice'), ('age', 21), ('major', 'Computer Science')])
Iterating through key-value pairs:
name: Alice
age: 21
major: Computer Science