Значения, не добавленные в список в цикле без ограничений

#python #for-loop

Вопрос:

У меня есть следующий цикл:

 deposits = Deposit.objects.all()  print('Processing ' str(len(deposits))  ' values . . .')   deposit_values = {}  for d in deposits:    bas = Account.objects.filter(  pk=d.account.id,  )      if len(bas) == 1:  ba = bas[0]  deposit_values[ba.id] = d.amount  else:  print(ba.id)    print(' ') print(str(len(deposit_values))  ' values processed.')  

При этом выводится следующий вывод:

Обработка 712 значений . . . обработано 710 значений.

Как это возможно, если нет ограничений для значений, которые входят в значения депозита?

Комментарии:

1. @python_user как вы можете видеть из печати, остальное никогда не попадает.

2. Очевидно, есть депозиты с одинаковым идентификатором учетной записи, и в конечном итоге вы переписываете один с другим в своем deposit_values словаре.

3. @Selcuk разве это не было бы напечатано в другом случае в этом случае?

4. Нет, по-прежнему есть только один счет, но два депозита на/с одного и того же счета.

5. хорошая мысль на этот счет

Ответ №1:

Спасибо @Selcuk

существуют депозиты с одинаковым идентификатором учетной записи, и в конечном итоге вы переписываете один на другой в своих значениях deposit_values