Хорошо, я знаю, что есть несколько подобных вопросов, но не повезло. У меня есть (2) для циклов с оператором while внутри внутреннего цикла for и 2 словарей со списком в качестве значений. Что я хочу сделать, так это получить новый ключ и выполнить некоторые вычисления, войти во второй цикл, подсчитать количество элементов во втором списке значений словаря, выполнить цикл по этим значениям списка, используя информацию из первого цикла, чтобы выполнить некоторые вычисления, как только все значения имеют были прочитаны для этого ключа, вернуться к первому циклу, получить следующий ключ и так далее. Количество ключей для каждого словаря всегда будет одинаковым. Длина v для второго приговора будет изменяться, например, в первый раз через второй цикл for значение counterlist [1] должно быть 9, но, как показано в приведенных ниже результатах, учитывается только значение 4, которое является числом значений в первом для петля. На самом деле второй цикл For считает только 4 для каждого времени вместо истинного значения длины v. Если я включу ключ во второй цикл for, такой как для k, v, во seconddict.items (), он будет правильно рассчитываться, но потом я получаю проблему, когда при каждом входе во второй цикл for он начинается с первого k и дублирует все мои результаты с каждым проходом. Могу ли я получить совет по выполнению этой работы?
def opti(self, firstdict, seconddict):
self.firstdict=firstdict
self.seconddict=seconddict
for key, value in self.firstdict.items():
print('****NEW KEY AND DO OTHER STUFF****)
for v in self.seconddict[key]:
print(---INSDIE SECOND DICT---')
x=0
counterlist=[key, len(list(filter(None, v)))]
while x < couterlist[1]:
x+=1
print(x)
if x >= counterlist[1]:
if key in finaldict:
print('====SAVE HERE===')
else:
print('SOMETHING ELSE')
break
else:
continue
break
**CURRENT RESULTS:**
*********************NEW RUN*******************
*********NEW KEY*********** SIZE 4
RAW DICT SIZE 4
------INSIDE RAWDICT--------- COUNTERLIST SIZE 3
1
2
3
======SOMETHING ELSE======
*********NEW KEY*********** SIZE 4
RAW DICT SIZE 4
------INSIDE RAWDICT--------- COUNTERLIST SIZE 3
1
2
3
======SOMETHING ELSE======
*********NEW KEY*********** SIZE 4
RAW DICT SIZE 4
------INSIDE RAWDICT--------- COUNTERLIST SIZE 3
1
2
3
======SOMETHING ELSE======
*********NEW KEY*********** SIZE 4
RAW DICT SIZE 4
------INSIDE RAWDICT--------- COUNTERLIST SIZE 3
1
2
3
======SOMETHING ELSE======
**NEEDED RESULTS:**
*********************NEW RUN*******************
*********NEW KEY*********** SIZE 4
RAW DICT SIZE 4
------INSIDE RAWDICT--------- COUNTERLIST SIZE 9
1
2
3
4
5
6
7
8
======SOMETHING ELSE======
*********NEW KEY*********** SIZE 4
RAW DICT SIZE 4
------INSIDE RAWDICT--------- COUNTERLIST SIZE 2
1
======SOMETHING ELSE======
*********NEW KEY*********** SIZE 4
RAW DICT SIZE 4
------INSIDE RAWDICT--------- COUNTERLIST SIZE 5
1
2
3
4
======SOMETHING ELSE======
*********NEW KEY*********** SIZE 4
RAW DICT SIZE 4
------INSIDE RAWDICT--------- COUNTERLIST SIZE 3
1
2
3
======SOMETHING ELSE======