Python:通过键的指针获取或设置字典中的值

时间:2012-05-08 14:43:51

标签: python pointers dictionary reference

如何通过引用在字典中设置值?

def set(point):
    point=0

dic={'pointer':22}
set(dic['pointer'])

print dic   # {'pointer': 0}

我必须发一个论点。

4 个答案:

答案 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]}