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

如何获取Python字典的最后一个值?解决KeyError与非硬编码需求

解决方案:获取字典最后一个键值对并处理无键情况

问题原因

你用print(row[-1])报错是因为字典不是序列类型,不能通过位置索引(比如-1)访问元素,row[-1]实际是在尝试用-1作为键去取值,而你的字典里没有这个键,所以抛出KeyError。

可行方案(Python3.7+)

Python 3.7及以上版本的字典是插入有序的,能保证按插入顺序获取最后一个键值对,以下两种方法都可以:

方法1:转成列表后取最后元素

# 先判断字典是否为空
if not row:
    print("字典为空,无元素可获取")
else:
    # 把字典键值对转成列表,取最后一个元素
    last_key, last_value = list(row.items())[-1]
    # 判断键是否为None
    if last_key is None:
        print(f"未检索到对应键值,对应的值为: {last_value}")
    else:
        print(f"键: {last_key}, 值: {last_value}")

方法2:用reversed高效获取最后元素

不用转成完整列表,直接反向迭代字典的键值对,取第一个元素(即原字典的最后一个):

if not row:
    print("字典为空,无元素可获取")
else:
    last_key, last_value = next(reversed(row.items()))
    if last_key is None:
        print(f"未检索到对应键值,对应的值为: {last_value}")
    else:
        print(f"键: {last_key}, 值: {last_value}")

注意事项

  • 如果你用的是Python3.6及以下版本,普通字典是无序的,需要改用collections.OrderedDict来保证插入顺序,用法类似:
    from collections import OrderedDict
    # 假设row是OrderedDict类型
    if not row:
        print("字典为空,无元素可获取")
    else:
        last_key, last_value = next(reversed(row.items()))
        # 后续判断逻辑同上
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 00:22:04