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

如何在Python中以对象为键一行代码初始化字典?

如何用一行代码创建以对象实例为键的字典?

嘿,这个问题我之前也踩过坑!你遇到的情况其实是Python字典构造函数的一个小特性:当你用dict(training_flower=dist)这种关键字参数的形式时,Python会把training_flower当成字符串字面量来处理,而不是把它当作变量指向的IrisFlower实例。这就是为什么键变成了字符串'training_flower',而不是你想要的对象。

要实现用对象实例作为键创建字典,有两种简洁的一行代码方式:

1. 直接使用字典字面量(最推荐)

这是最直观也最简洁的写法,直接用大括号包裹键值对,这里的键会被解析为变量指向的对象:

d = {training_flower: dist}

2. 传入键值对元组列表给dict()

如果需要一次性添加多个对象键值对,可以把每个键值对包装成元组,再放到列表里传给dict():

# 假设还有另一个IrisFlower实例
another_flower = IrisFlower(4.9, 3.0)
another_dist = 0.3

d = dict([(training_flower, dist), (another_flower, another_dist)])

验证一下效果

你可以打印字典的键来确认:

print(list(d.keys()))

输出会是类似[<__main__.IrisFlower object at 0x10abc1234>, ...]的对象实例,而不是字符串键,完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:51:41