Словарь добавляет только последнюю пару ключ-значение в цикле for

У меня есть цикл for, который проходит через список городов и присваивает каждому из них total_city_value. Я пытаюсь получить каждое уникальное значение total_city_value, созданное в цикле for, добавленное в словарь, однако, похоже, что в цикле for сохраняется только конечное значение total_city_value, когда я печатаю словарь.

            for broad_variable in broad_variable_list:
                    
                    # check if the current broad variable is equal to the first broad variable the user chose
                    if broad_variable == broad_variable1:
                        
                        # if the city's specific variable is equal to the specific variable the user chose get the value of it based on it's ranking weight
                        if City.objects.values_list(broad_variable, flat=True).filter(city=cities).first() == specific_variable1:
                            city_variable1_value = 1 * weight_variable1
                            #print("city_variable1_value",city_variable1_value)
                        
                        # else assign a value of 0
                        else:
                            city_variable1_value = 0
                    
                    # check if the current broad variable is equal to the second broad variable the user chose
                    if broad_variable == broad_variable2:
                        
                        # if the city's specific variable is equal to the specific variable the user chose get the value of it based on it's ranking weight
                        if City.objects.values_list(broad_variable, flat=True).filter(city=cities).first() == specific_variable2:
                            city_variable2_value = 1 * weight_variable2
                        
                        # else assign a value of 0
                        else:
                            city_variable2_value = 0
                    
                total_city_value = city_variable1_value + city_variable2_value
                city_value_dictionary[cities] = total_city_value
            
            print(city_value_dictionary)

Возможно, это так же просто, как:

city_value_dictionary[cities] += total_city_value

для добавления нового значения к существующему? Вам может понадобиться проверить, является ли это первым разом для данного значения cities, потому что в первый раз не будет записи для добавления. Что-то банальное вроде:

try:
    city_value_dictionary[cities] += total_city_value
except KeyError:
    city_value_dictionary[cities] = total_city_value

или:

total = city_value_dictionary.get(cities, 0)
city_value_dictionary[cities] = total + total_city_value
Вернуться на верх