Код:Лучший способ, чтобы очистить список и словарь
num_of_iterations_for_outer_loop = 2
num_of_iterations_for_inner_loop = 3
data = []
for j in range(num_of_iterations_for_outer_loop):
lst2 = []
for k in range(num_of_iterations_for_inner_loop):
lst1 = {}
lst1['1'] = "first_value" # these are not default, in my original code they are coming from some other values after calculation
lst1['2'] = "second_value"
lst1['3'] = "third_value"
lst2.append(lst1)
value = {'values':lst2}
data.append(value)
Во внешнем цикле я должен очистить lst2
список снова и снова для повторного использования его.
Во внутреннем цикле я должен снова и снова очищать словарь lst1
для его повторного использования.
Я знаю 2 способа очистки списка:
del lst2[:]
lst2 = []
и 1 способ очистки словаря:
lst1 = {}
Но я не знаю различий между этими методами и какой из них я должен использовать.
Есть ли другой способ очистки списка и словаря? И лучший способ, и почему?
Есть ли лучший способ написать весь код?
Ни один из тех, кто на самом деле заявление очистить содержимое соответствующих объектов. Они просто создают новые, пустые контейнеры и присваивают их каждому имени. Я считаю, что OP хочет, чтобы это было сделано _in-place_. – martineau
@martineau Держу пари, что они этого не делают, таким образом они просто получат «данные», содержащие целую кучу ссылок на тот же список, содержащий целую кучу ссылок на один и тот же словарь, и будут прямо здесь, жалуясь, что они всегда видят, что последние значения повторяются снова и снова. – jonrsharpe