Python: Передача переменных в импортированную функцию вместо хранения в одном модуле для циклов и словарей - PullRequest
0 голосов
/ 01 мая 2018

Я уверен, что где-то есть документ, отвечающий на этот точный вопрос, но я не уверен, что именно Google должен точно

Сценарий:

У меня есть дерево решений, которое мне нужно перебирать по большому словарю, и на основе определенных условий нужно извлекать переменные из различных входных словарей. Я знаю, что если я храню все это в одном модуле, я могу получить доступ к глобальной переменной в своей функции, но если я разделю их на отдельные модули, мне придется передать все входные словари.

Вопрос 1)

Во втором случае это дублирующая память или переданные переменные просто указатель на позицию в памяти.

Вопрос 2)

Для редактирования и создания новых ключей в словаре есть способ изменить словарь, не переназначая его.

Большое спасибо

Текущая ситуация:

input_dict = 
    {'A': 1, 'B': 2}

large_dictionary= 
    {1 : { 'Name': 'John', 'Age': 30},
    ....
    1000 : { 'Name': 'Sam', 'Age': 20}}

def function_1():
    data['variable_to_create'] = input_dict['A']

for key,data in large_dictionary.items():
    ...
    Some large decision tree
    ...
    function_1()

Предлагаемая ситуация:

Модуль

def function_1(data, input_dict):
    data['variable_to_create'] = input_dict['A']
    return data

Код

from new_module import function_1

input_dict = 
    {'A': 1, 'B': 2}

large_dictionary= 
    {1 : { 'Name': 'John', 'Age': 30},
    ....
    1000 : { 'Name': 'Sam', 'Age': 20}}

for key,data in large_dictionary.items():
    ...
    Some large decision tree
    ...
    data = function_1(data, input_dict) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...