Я новичок в python, поэтому, возможно, мою проблему легко решить. У меня есть словарь, организованный следующим образом: my_dict = {'x': (1.1, 3.4), 'y': (4.3, 7.5), 'z': (7.3, 9.5)}. Я хотел бы уменьшить каждое значение на одно и то же число, поэтому я пытаюсь сделать следующее:
for k,v in my_dict.items():
for a, b in v:
a = a * 0.3
b = b * 0.3
my_dict[k] = (a, b)
return my_dict
При использовании этого кода я получаю эту ошибку:
for a, b in v:
TypeError: 'float' object is not iterable
Таким образом, кажется, что «для a, b в v» l oop пытается перебрать float, что невозможно. Таким образом, я попытался напечатать my_dict.items () и k, v в для l oop, чтобы увидеть, что такое итерация для l oop, и вот что я получаю:
for k,v in my_dict.items():
print my_dict.items()
print k,v
[('x', (1.1, 3.4)), ('y', (4.3, 7.5)), ('z', (7.3, 9.5))]
y (4.3, 7.5)
Я вижу две странные вещи: - Я ожидал, что команда «print k, v» напечатает каждый ключ, пару значений, но я получаю только ключ y с его значением - Посмотрев на my_dict.items (), мне кажется, что v это не число с плавающей точкой, а кортеж, содержащий два числа с плавающей точкой. Так почему же я получаю объект float не повторяемая ошибка?
Любая помощь приветствуется. Опять же, я прошу прощения, если это глупый вопрос, но я только начал использовать python, и я застрял с этим.
Спасибо!