You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过索引直接访问Python字典中的指定位置元素?

如何按索引访问Python字典的元素?

好问题!在Python 3.7及以后的版本中,字典已经默认保持插入顺序了,所以我们可以通过几种方法实现类似按索引取值的效果,完全不用依赖键名。下面给你几个实用的方案:

方案1:将字典值转为列表后用索引访问

这是最直观的方法,把字典的所有值提取成一个列表,之后就可以像操作普通列表一样用索引获取对应位置的值:

a = {'ali':10 , 'reza':19 , 'sara':15}
# 提取所有值到列表
value_list = list(a.values())
# 按索引取值
print(value_list[0])  # 输出 10
print(value_list[1])  # 输出 19
print(value_list[2])  # 输出 15

⚠️ 注意:如果后续修改了原字典(比如新增/删除键值对),需要重新生成这个列表,否则列表不会同步更新。

方案2:用itertools.islice按需获取指定位置的值

如果你不想生成完整的列表(比如处理大型字典,节省内存),可以用itertools.islice直接截取迭代器中指定位置的元素:

import itertools

a = {'ali':10 , 'reza':19 , 'sara':15}
# 获取第1个值(索引0)
first_val = next(itertools.islice(a.values(), 0, 1))
print(first_val)  # 10

# 获取第2个值(索引1)
second_val = next(itertools.islice(a.values(), 1, 2))
print(second_val)  # 19

这种方法不需要一次性加载所有值到内存,适合只需要获取个别位置值的场景。

方案3:同时获取键和值的索引位置

如果需要同时拿到对应位置的键和值,可以把字典的items()转为列表:

a = {'ali':10 , 'reza':19 , 'sara':15}
item_list = list(a.items())
# 获取第1个键值对
print(item_list[0])  # 输出 ('ali', 10)
# 从键值对中提取值
print(item_list[0][1])  # 输出 10

重要提醒

  • 如果你使用的是Python 3.6或更早版本,普通字典是无序的,按索引取值的逻辑不成立。这种情况下要么升级Python版本,要么使用collections.OrderedDict来保证插入顺序。
  • 字典的“位置”完全基于插入顺序,如果后续有键的删除、新增操作,对应元素的索引位置会发生变化,这点一定要注意。

内容的提问来源于stack exchange,提问作者alireza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 00:54:09