Как изменить форматы времени в Python? - PullRequest
3 голосов
/ 01 апреля 2011

Как мне получить следующий список

 [datetime.date(2011, 4, 1), datetime.date(2011, 4, 8), datetime.date(2011, 4, 16), datetime.date(2011, 5, 21)]

как

['2011-04','2011-05']

Он не только конвертирует в строку, но и удаляет дубликаты

Ответы [ 3 ]

6 голосов
/ 01 апреля 2011

Преобразовать даты в строки, используя datetime.date.strftime .

dates = [date.strftime('%Y-%m') for date in dates]

Вы можете удалить дубликаты, преобразовав список в набор, а затем вернувшись к списку.

dates = list(set(dates))

Затем объедините оба метода, чтобы сделать все за один шаг.

dates = list(set([date.strftime('%Y-%m') for date in dates]))
1 голос
/ 01 апреля 2011
In [43]: import datetime

In [44]: dates=[datetime.date(2011, 4, 1), datetime.date(2011, 4, 8), datetime.date(2011, 4, 16), datetime.date(2011, 5, 21)]

In [45]: set([date.strftime('%Y-%m') for date in dates])
Out[45]: set(['2011-04', '2011-05'])
1 голос
/ 01 апреля 2011
>>> dates = [datetime.date(2011, 4, 1), datetime.date(2011, 4, 8), datetime.date(2011, 4, 16), datetime.date(2011, 5, 21)]
>>> set([date.strftime('%Y-%m') for date in dates])
set(['2011-05', '2011-04'])

set превращает список в заданный объект, удаляя дубликаты. [date.strftime('%Y-%m') for date in dates] - это список, который превращает каждую дату в строку, используя функцию strftime с шаблоном год-месяц.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...