如何在 Python 中索引字典
How to index a dictionary in Python
使用list()
该类来索引字典,例如list(my_dict)[0]
and
list(my_dict.values())[0]
。该类list()
将字典或字典的值转换为我们可以在特定索引处访问的列表。
主程序
my_dict = { 'site': 'bobbyhadz.com', 'color': 'blue', 'number': 100 } # ✅ get key in dictionary by index key = list(my_dict)[0] print(key) # 👉️ site # ✅ get value in ditionary by index value = list(my_dict.values())[0] print(value) # 👉️ bobbyhadz.com # -------------------------------------- # ✅ get index of key in dictionary index = None if 'site' in my_dict: index = list(my_dict).index('site') print(index) # 👉️ 0
我们使用list()
该类来索引字典。
该类list()
将字典转换为键列表。
主程序
my_dict = { 'site': 'bobbyhadz.com', 'color': 'blue', 'number': 100 } print(list(my_dict)) # 👉️ ['site', 'color', 'number'] print(list(my_dict.keys())) # 👉️ ['site', 'color', 'number']
我们也可以使用该dict.keys()
方法来更明确。
dict.keys方法返回字典键的
新视图。
最后一步是访问特定索引处的键列表。
主程序
my_dict = { 'site': 'bobbyhadz.com', 'color': 'blue', 'number': 100 } key = list(my_dict)[0] print(key) # 👉️ site
Python 索引是从零开始的,因此列表中的第一项的索引为,最后一项的索引为或。
0
-1
len(my_list) - 1
如果您需要获取字典中特定索引处的值,请将调用结果传递dict.values()
给list()
类。
主程序
my_dict = { 'site': 'bobbyhadz.com', 'color': 'blue', 'number': 100 } value = list(my_dict.values())[0] print(value) # 👉️ bobbyhadz.com
dict.values方法返回字典
值的新视图。
主程序
my_dict = { 'site': 'bobbyhadz.com', 'color': 'blue', 'number': 100 } # 👇️ dict_values(['bobbyhadz.com', 'blue', 100]) print(my_dict.values())
该dict.values()
方法返回一个不可订阅的视图对象(无法通过索引访问),因此我们仍然必须将其转换为列表。
list.index()
如果您需要获取字典中特定键或值的索引,请使用该方法。
主程序
my_dict = { 'site': 'bobbyhadz.com', 'color': 'blue', 'number': 100 } index = None if 'site' in my_dict: index = list(my_dict).index('site') print(index) # 👉️ 0
该
list.index()
方法返回其值等于提供的参数的第一个项目的索引。ValueError
如果列表中没有这样的项目,该方法将引发一个。
我们使用if
语句来检查字典中是否存在键,因此该
list.index()
方法永远不会抛出ValueError
.
您可以使用相同的方法获取字典中值的索引。
主程序
my_dict = { 'site': 'bobbyhadz.com', 'color': 'blue', 'number': 100 } index = None dict_values = my_dict.values() if 'bobbyhadz.com' in dict_values: index = list(dict_values).index('bobbyhadz.com') print(index) # 👉️ 0
从 Python 3.7 开始,标准
dict
类保证保留键的插入顺序。如果您使用旧版本,请改用OrderedDict
该类。
主程序
from collections import OrderedDict my_dict = OrderedDict( [('site', 'bobbyhadz.com'), ('color', 'blue'), ('number', 100)] ) key = list(my_dict)[0] print(key) # 👉️ site value = list(my_dict.values())[0] print(value) # 👉️ bobbyhadz.com # -------------------------------------- index = None if 'site' in my_dict: index = list(my_dict).index('site') print(index) # 👉️ 0
该类list()
还可用于将 an 的键转换为OrderedDict
列表。
请注意,OrderedDict
仅当您使用早于 Python 3.7 的版本时才需要使用该类。
否则,请使用本机dict
类,因为它会保留插入顺序。