У меня есть около 20 списков, которые я добавляю в каждую итерацию цикла, если некоторые проверки пройдены. Добавленные значения взяты из вложенного словаря, и, как вы можете себе представить, написание этих одного за другим выглядит ужасно и снижает удобочитаемость. Мой код выглядит примерно так:
list1.append(my_dict['key1']['key2']['key3'])
list2.append(my_dict['key1']['key2']['key4']['key5'])
.
.
.
list19.append(my_dict['key1']['key2']['key4']['key19'])
list20.append(my_dict['key1']['key2']['key4']['key20'])
Я хотел бы просто взять все эти операции добавления и поместить его в функцию, но идея дать кучу списков в функцию, добавляя к ними возвращать их мне кажется неправильным. Я не уверен, что самый питонский способ сделать это.
РЕДАКТИРОВАТЬ: я добавляю этот комментарий ниже, чтобы дать вам, ребята, представление о том, что я извлекаю в списки
"impact" : {
"baseMetricV2" : {
"cvssV2" : {
"version" : "2.0",
"vectorString" : "AV:N/AC:L/Au:N/C:N/I:N/A:P",
"accessVector" : "NETWORK",
"accessComplexity" : "LOW",
"authentication" : "NONE",
"confidentialityImpact" : "NONE",
"integrityImpact" : "NONE",
"availabilityImpact" : "PARTIAL",
"baseScore" : 5.0
},
"severity" : "MEDIUM",
"exploitabilityScore" : 10.0,
"impactScore" : 2.9,
"obtainAllPrivilege" : false,
"obtainUserPrivilege" : false,
"obtainOtherPrivilege" : false,
"userInteractionRequired" : false
}
Обратите внимание, что воздействие клавиши относится к key1. Но вопрос, который я задаю, не имеет ничего общего с данными, которые я извлекаю. Я просто чувствую, что давать кучу списков функции, изменять эти списки внутри функции, возвращать и перезаписывать исходные списки на выходе - неправильно. Это скорее вопрос философии кодирования, который я буду применять во многих случаях, а не только в этом конкретном случае.