如何通过引用在字典中设置值?
def set(point):
point=0
dic={'pointer':22}
set(dic['pointer'])
print dic # {'pointer': 0}
我必须发一个论点。
答案 0 :(得分:6)
不要创建名为set
的函数,因为您将覆盖同名的内置函数。
假设您要在dict
中设置值,这在您的问题中并不完全清楚,您可以使用赋值:
dic={'pointer':22}
dic['pointer'] = 0
print dic # {'pointer': 0}
答案 1 :(得分:3)
这是你想要做的吗?
>>> dic = {'pointer':22}
>>> dic['pointer'] = 0
>>> print dic
{'pointer':0}
你的问题不清楚。
答案 2 :(得分:1)
与您的问题的含义略有不同,如何通过引用设置值:
def setit(point, adic):
adic[point] = 0
dic={'pointer':22}
setit('pointer',dic)
print dic # {'pointer': 0}
在您的版本中,调用传递set(dic['pointer'])
的set函数只会传递值。
Python没有像C这样的指针类型。变量是引用,因此不需要指针。
答案 3 :(得分:1)
虽然python实际上并没有你想要寻找的指针对象,但可以修改可变对象(如列表,dict,那种东西。不是int或str)。这是关键;它们可以被修改,而不是在这样的函数中设置。如果您尝试使用=
设置值,则只会更改setit
的本地范围内的变量。如果访问变量并对其进行修改,则字典中的实际对象将保持修改状态。
def setit(val):
val.pop()
val.append(0)
dic = {'pointer':['22']}
setit(dic['pointer'])
print dic # {'pointer':[0]}