2013-02-21 8 views
0

, если у меня есть массив дат:Преобразование даты в месяц и день python?

["2012-1-1", "2012-1-3","2012-5-3"] 

Я хочу, чтобы иметь возможность получить список результатов для:

["January 2012", "May 2012"] 

Что такое лучший способ сделать это?

+1

S/массив дат/список строк/ – bernie

+1

Я хотел бы использовать 'даты и времени ', чтобы получить объекты datetime, с которыми вы можете работать или записываться в любом формате, который вы хотите ... но я полагаю, вы могли бы разбить строку на' '-'', а затем использовать поиск в словаре для отображения' '1'' 'January' и т. Д. – mgilson

+0

использовать функцию' map' – mkoryak

ответ

2
[datetime.datetime.strptime(d, '%Y-%m-%d').strftime("%B %Y") for d in my_list] 
+0

Есть ли эффективный способ удаления дубликатов записей в списке? – Rolando

+0

@ Damascusi: вы можете использовать 'set' для удаления дубликатов – avasal

+0

Есть ли какой-то эффективный способ сортировки, чтобы какой-либо предмет с 2012 годом был заказан до любого предмета с 2013 годом? – Rolando

0

Я хотел бы сделать это в три части, если вы хотите отсортировать по DateTime и отбраковать уников:

dates = [datetime.datetime.strptime(d, '%Y-%m-%d') for d in my_list] 
dates.sort() 
string_dates = [d.strftime("%B %Y") for d in dates] 
## now we'll cull the list of duplicates 
import itertools 
[ grouped[0] for grouped in itertools.groupby(string_dates) ] 
Смежные вопросы