Python通过修改引用设置字典键的值

4
我想知道如何在Python中实现类似这样的功能:
d = {'a': 3}
a_value_ref = d['a']
a_value_ref = 6
assert d['a'] == 6

我想首先计算多级字典中特定值的引用,然后使用此机制进行修改。这可通过C/C++轻松实现。谢谢您的帮助。


1
仅仅因为某个语言中的某个东西很容易,并不意味着它在另一种语言中是一个合适的习惯用语。 - chepner
1
阅读 https://nedbatchelder.com/text/names.html 以更好地理解Python变量是如何工作的。 - chepner
也许你可以构建一个可变的int类,不过我不推荐这样做...更大的图片是什么?你想要做什么? - Chris_Rands
2个回答

2

你不能这样做,因为整数的赋值会改变其引用,没有它你无法改变它的值(整数的不可变性)

你可以使用列表中的单个整数来实现这一点,这样就可以实现。

d = {'a': [3]}
a_value_ref = d['a']
a_value_ref[0] = 6
assert d['a'] == [6]

解决方法是在存在错误的情况下获得可工作代码的技术。这只是对数据结构进行不必要的修改,以适应非Pythonic语法。 - chepner
我会称之为一个不好的想法。 - chepner
2
我不提出任何建议(除了阅读我在评论中发布的链接),因为我认为这是一个XY问题,我不知道OP实际上想要做什么。 - chepner
@chepner 你说得有道理 :) 不过,那个问题获得了4个赞,所以似乎有些人感兴趣。 - Jean-François Fabre

0

这不是 Python 的工作方式,变通方法并不是好的解决方案。我已经改变了访问字典键的方式,现在使用 dict[key] = value 语法来更新值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接