У меня есть словарь, похожий на этот:
table_wood = {'Red': {'Abbreviation': 'R',
'Instances': 269601,
'Code': '8924',
'Discovered': '1876-08-01',
'Largest usage': 'Douglas',
'Indigo': {'Abbreviation': 'IN',
'Instances': 216443,
'Code': '2343',
'Discovered': '1890-07-03',
'Largest usage': 'Freida'}}
Мне нужно перебрать словарь table_wood и вычислить (instance / code) для каждого словаря в table_wood.После того, как я это сделаю, мне нужно сообщить, у кого наибольшее количество экземпляров и у которого самое низкое.
Я попытался использовать циклы for для добавления соответствующих значений в пустые списки, а затем использовать для сравнения вложенный цикл for.эти значения списка, чтобы увидеть, какой из исходных экземпляров является наибольшим и самым низким.Он включает большое количество пустых списков, и я знаю, что есть лучший способ, если я могу просто сохранить их как новые пары ключ / значение в пустом словаре.
instanceCodeRate = []
colorInstances = []
highestInstance = []
lowestInstance = []
for color in table_wood:
colorRate.append(color+ ": " +str(round((table_wood[color]["Instances"])/(table_wood[color]["Code"]),2))+ " instances per code.\n")
#print(instanceCodeRate)
colorInstances.append(table_wood[color]["Instances"])
#print(colorInstances)
for instance in colorInstances:
if ((table_wood[color]["Instances"]) == min(colorInstances)):
lowestInstance.append(color)
elif ((table_wood[color]["Instances"]) == max(colorInstances)):
highestInstance.append(color)
#print(instanceCodeRate)
#print(highestInstance)
#print(lowestInstance)
Когда я печатаю (instanceCodeRate)он делает это как элементы списка, что делает недействительным символ пробела "\ n", который я пытаюсь напечатать, чтобы каждая запись имела свою собственную строку.Мой elif работает, сохраняя только самые большие, но по какой-то причине оператор if, который хранит минимум, хранит несколько элементов списка там, где должен быть только один.