-3

参照によって辞書に値を設定するにはどうすればよいですか?

def set(point):
    point=0

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

print dic   # {'pointer': 0}

1 つの引数を送信する必要があります。

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 に答える