-3

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

def set(point):
    point=0

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

print dic   # {'pointer': 0}

我必须提出一个论点。

4

4 回答 4

12

不要创建名为 的函数set,因为您将覆盖同名的内置函数。

假设您想在 a 中设置值dict,这从您的问题中并不完全清楚,您可以使用赋值:

dic={'pointer':22}
dic['pointer'] = 0

print dic   # {'pointer': 0}
于 2012-05-08T14:46:27.767 回答
4

这是你想做的吗?

>>> dic = {'pointer':22}
>>> dic['pointer'] = 0
>>> print dic
{'pointer':0}

从你的问题不清楚。

于 2012-05-08T14:46:38.483 回答
1

您的问题与其他问题的含义略有不同,我如何通过引用设置值:

def setit(point, adic): 
    adic[point] = 0

dic={'pointer':22} 
setit('pointer',dic) 

print dic   # {'pointer': 0} 

在您的版本中,对传递的 set 函数的调用set(dic['pointer'])只会传递值。

Python 没有像 C 这样的指针类型。变量是引用,因此不需要指针。

于 2012-05-08T14:58:55.867 回答
1

虽然 python 并没有像您似乎正在寻找的指针对象,但可以根据需要修改可变对象(所以是列表、dict 之类的东西。不是 int 或 str)。这就是关键;它们可以被修改,而不是在这样的函数中设置。如果您尝试使用 设置值=,它只会更改setit本地范围内的变量。如果您访问变量并对其进行修改,则字典中的实际对象将保持修改状态。

def setit(val):
    val.pop() 
    val.append(0)
dic = {'pointer':['22']}
setit(dic['pointer'])
print dic # {'pointer':[0]}
于 2012-05-08T15:16:16.233 回答