Как очистить несколько списков или диктовать вместе - PullRequest
0 голосов
/ 11 октября 2019

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

Result1={"d11":"1","d12":"2"}
Result2 =["l11","l22"]

def length(name):
    print(str(name) + "  having length is : "+ str(len(name)))

def GlobalClear():
    overallList = ["Result1", "Result2"]
    for key in overallList:
        list(key).clear()
        length(list(key))

print("Prev Length")
length(Result1)
length(Result2)
GlobalClear()
print("Final Length")
length(Result1)
length(Result2)

Вывод:

Prev Length
{'d11': '1', 'd12': '2'}  having length is : 2
['l11', 'l22']  having length is : 2
['R', 'e', 's', 'u', 'l', 't', '1']  having length is : 7
['R', 'e', 's', 'u', 'l', 't', '2']  having length is : 7
Final Length
{'d11': '1', 'd12': '2'}  having length is : 2
['l11', 'l22']  having length is : 2

Ожидаемый вывод:

Prev Length
{'d11': '1', 'd12': '2'}  having length is : 2
['l11', 'l22']  having length is : 2
Final Length
{'d11': '1', 'd12': '2'}  having length is : 0
['l11', 'l22']  having length is : 0

Пожалуйста, предложите мне подходящий подход для решения вышеуказанной проблемы. Спасибо !!

1 Ответ

2 голосов
/ 11 октября 2019

Вместо сохранения имен списка, вы можете сохранить ссылку на сам список и вызвать clear() для этого

Result1={"d11":"1","d12":"2"}
Result2 =["l11","l22"]

def length(name):
    print(str(name) + "  having length is : "+ str(len(name)))

def GlobalClear():
    overallList = [Result1, Result2]
    for key in overallList:
        key.clear()

print("Prev Length")
length(Result1)
length(Result2)
GlobalClear()
print("Final Length")
length(Result1)
length(Result2)

Выход:

Prev Length
{'d11': '1', 'd12': '2'}  having length is : 2
['l11', 'l22']  having length is : 2
Final Length
{}  having length is : 0
[]  having length is : 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...