Как я могу изменить dict локально, чтобы не влиять на глобальную переменную в python - PullRequest
1 голос
/ 31 августа 2010

Как мне создать словарь в python, который передается в функцию, чтобы он выглядел так:

def foobar(dict):
    dict = tempdict # I want tempdict to not point to dict, but to be a different  dict
    #logic that modifies tempdict
    return tempdict

Как мне это сделать?

1 Ответ

4 голосов
/ 31 августа 2010

Вам нужно скопировать dict для вынесения приговора.

def foobar(d):
    temp = d.copy()
    # your logic goes here
    return temp

copy делает поверхностную копию слова (т.е. копирует его значения, но не значения).

% python
Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> d = {'x': 17, 'y': 23}
>>> t = d.copy()
>>> t
{'y': 23, 'x': 17}
>>> t['x'] = 93
>>> t
{'y': 23, 'x': 93}
>>> d
{'y': 23, 'x': 17}
>>>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...