如何在 Python 中为字典建立索引

使用 list() 类来索引字典,例如 list(my_dict)[0] 和 list(my_dict.values())[0]。 list() 类将字典或字典的值转换为我们可以在特定索引处访问的列表。

my_dict = {
    'site': 'jiyik.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() 类来索引字典。

list() 类将字典转换为键列表。

my_dict = {
    'site': 'jiyik.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': 'jiyik.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': 'jiyik.com',
    'color': 'blue',
    'number': 100
}

value = list(my_dict.values())[0]
print(value)  # ?️ jiyik.com

dict.values 方法返回字典值的新视图。

my_dict = {
    'site': 'jiyik.com',
    'color': 'blue',
    'number': 100
}

# ?️ dict_values(['jiyik.com', 'blue', 100])
print(my_dict.values())

dict.values() 方法返回一个不可下标的视图对象(不能在索引处访问),因此我们仍然必须将其转换为列表。

如果我们需要获取字典中特定键或值的索引,请使用 list.index() 方法。

my_dict = {
    'site': 'jiyik.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': 'jiyik.com',
    'color': 'blue',
    'number': 100
}


index = None

dict_values = my_dict.values()

if 'jiyik.com' in dict_values:
    index = list(dict_values).index('jiyik.com')

print(index)  # ?️ 0

从 Python 3.7 开始,标准 dict 类保证保留键的插入顺序。

如果是使用旧版本,请改用 OrderedDict 类。

from collections import OrderedDict

my_dict = OrderedDict(
    [('site', 'jiyik.com'), ('color', 'blue'), ('number', 100)]
)

key = list(my_dict)[0]
print(key)  # ?️ site

value = list(my_dict.values())[0]
print(value)  # ?️ jiyik.com

# --------------------------------------

index = None

if 'site' in my_dict:
    index = list(my_dict).index('site')

print(index)  # ?️ 0

list() 类也可用于将 OrderedDict 的键转换为列表。

请注意 ,仅当我们使用 Python 3.7 之前的版本时才需要使用 OrderedDict 类。

否则,请使用本机 dict 类,因为它保留了插入顺序。