дан словарь
s = {1: 'Январь', 2: 'Февраль', 3: 'Март', 4: 'Апрель',
5: 'Май', 6: 'Июнь', 7: 'Июль', 8: 'Август',
9: 'Сентябрь', 10: 'Октябрь', 11: 'Ноябрь', 12: 'Декабрь'}
нужно вывести ключ_значение в столбик без скобок через двоеточие ключ: значение
знаю, что есть вот такой код, назовем его код №1
print('\n'.join(f'{k}: {v}' for k,v in s.items()))
и он прекрасно все выводит как надо
1: Январь
2: Февраль
3: Март т.д.
а вот этот код под №2
[print(f"{k}: {v}") for k,v in s.items()]
тоже делает нужный вывод
1: Январь
2: Февраль
3: Март и т.д.
НО, в конце еще печатает и целую строку из 12 none
[None, None, None, None, None, None, None, None, None, None, None, None]
2 вопроса
1. откуда берутся эти 12 none да еще в виде списка
2. как поправить код №2 чтобы эти 12 none не выводились

14 Сен 2024 в 04:19
204 +1
0
Ответы
2

Эти 12 None появляются потому, что в вашем списке создается 12 объектов None в результате выполнения list comprehension. Когда вы используете list comprehension без явного присвоения, то создаются элементы списка, но они не сохраняются или используются далее.

Чтобы избавиться от вывода списка с None, просто уберите вызов list вокруг print:

print(f"k:v")fork,vins.items()print(f"{k}: {v}") for k,v in s.items()print(f"k:v")fork,vins.items()

Этот код будет выводить ключ_значение в столбик без добавления списка с None в конце.

17 Сен 2024 в 12:58

Ваш второй код использует list comprehension для создания списка значений, однако он печатает возвращаемое знание NoneNoneNone каждый раз, когда вызывается print. Поэтому после печати ключ_значение вам показывается список из 12 None.

Чтобы избежать вывода списка из 12 None, вы можете использовать цикл for вместо list comprehension, чтобы пройти по элементам словаря и напечатать ключ_значение каждый раз без создания списка. Например:

for k, v in s.items:
printf"k:v"f"{k}: {v}"f"k:v"

Этот код не будет создавать список значений и выводить только ключ_значение в столбик.

17 Сен 2024 в 16:23
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир