Я не думаю, что вам нужно datetime
для этой простой задачи.
Вы можете использовать разрезание строк здесь, чтобы вернуть кортеж строк в формате "DD-MM"
. Вы можете нарезать все до 2-го символа (но не включая) с помощью [:2]
, а все после второго символа с помощью [2:]
. Тогда вы можете просто положить да sh "-"
между ломтиками.
>>> dates = 1104, 1504, 1704, 2204
>>> tuple(f"{x[:2]}-{x[2:]}" for x in map(str, dates))
('11-04', '15-04', '17-04', '22-04')
Я вернул tuple
, поскольку dates
- это тот тип. Я также преобразовал целые числа из dates
в str
, используя map
, так как вы не можете разрезать целые числа. Вы также можете использовать f-строки для форматирования срезов в формате "DD-MM"
.
Также я предполагаю, что вы хотели, чтобы ожидаемый результат представлял собой кортеж строк, поскольку один dates = 11-04, 15-04, 17-04, 22-04
был бы недействительным.
Обновление
Если вы хотите извлечь даты из input()
, вы передаете входные данные, разделенные ","
, чтобы разделить их на список строк:
>>> dates = input()
1104, 1504, 1704, 2204
>>> dates
'1104, 1504, 1704, 2204'
>>> tuple(f"{x[:2]}-{x[2:]}" for x in map(str.strip, dates.split(",")))
('11-04', '15-04', '17-04', '22-04')
Что также удаляет оставшиеся пробелы с str.strip
, поскольку входные данные могут быть 1104, 1504, 1704, 2204
, 1104,1504,1704,2204
, 1104, 1504,1704, 2204
и c. Гораздо проще просто разделить на ","
, а затем убрать пробелы.