#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