Python字典-每个值对应两个键

4 投票
1 回答
2132 浏览
提问于 2025-04-17 03:10

你好,我比较确定你不能这样做,但我想知道是否可以创建一个字典,让每个值可以通过两个不同的键来访问,而不需要重复这个字典。

我想这样做的原因是,这两个键代表的是同一个东西,但一个是简化版,比如说 'TYR' 和 'Y' 都会对应同一个值。

1 个回答

5

只需把同一个可变对象放在两个地方。如果你修改了这个对象,它在字典中的两个地方都会改变。唯一的缺点是你必须明确地在两个地方添加和删除这个对象(不过你可以创建一些辅助方法来简化这个过程)。

In [4]: d = {}
In [5]: c = [1,2]
In [7]: d[1] = c
In [8]: d[2] = c
In [9]: d
Out[9]: {1: [1, 2], 2: [1, 2]}
In [10]: c.append(3)
In [11]: d
Out[11]: {1: [1, 2, 3], 2: [1, 2, 3]}

如果你想存储不可变类型,比如字符串和元组,你可能需要创建一个对象来存储它们,并在这个对象内部进行修改。

撰写回答