我有一个关于我想要制作的字典的问题。我的目标是为单个值提供多个键,如下所示:
dictionary = {('a', 'b'): 1, ('c', 'd'): 2}
assert dictionary['a'] == 1
assert dictionary['b'] == 1
有什么想法吗?
最佳答案
我猜你的意思是:
class Value:
def __init__(self, v=None):
self.v = v
v1 = Value(1)
v2 = Value(2)
d = {'a': v1, 'b': v1, 'c': v2, 'd': v2}
d['a'].v += 1
d['b'].v == 2 # True
- Python的字符串和数字都是不可变的对象,
- 因此,如果您希望
d['a']
和d['b']
指向 相同的值更新”,当它改变时,使值引用一个 mutable 对象(像上面的用户定义的类,或dict
、list
、设置
)。 - 那么,当你修改
d['a']
处的对象时,d['b']
会同时发生变化,因为它们都指向同一个对象。
关于python - 如何制作具有多个键的字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10123853/