2014-11-30 2 views
0

Я пытаюсь сортировать это по time, и я не знаю, с чего начать.Python Сортировка списка Namedtuples

[ 
    A(id=u'BLI52E', time=datetime.datetime(2014, 11, 30, 9, 52, 49, 209102)), 
    A(id=u'DHCS4J', time=datetime.datetime(2014, 11, 30, 9, 53, 36, 495319)), 
    A(id=u'4HMS4J', time=datetime.datetime(2014, 11, 30, 9, 53, 16, 395329)), 
    A(id=u'GFTS4J', time=datetime.datetime(2014, 11, 30, 9, 53, 36, 295319)), 
    A(id=u'BH244K', time=datetime.datetime(2014, 11, 30, 9, 53, 23, 591319)), 
] 
+2

Это выглядит как список (из 'A') для меня. Не так ли? – falsetru

+1

Вам нужно больше информации. Какую информацию вы хотите отсортировать? Затем просто мимо функции сравнения с методом list.sort(). Также я согласен с falsetru, это именно то, что я представляю себе как список A. –

+0

Спасибо за ответы, я пытаюсь сортировать по времени – mrmo123

ответ

2

При сортировке по «ключей» именованных кортежей, содержащихся в списке, вы можете сделать следующее:

spam = [ 
      A(id=u'BLI52E', time=datetime.datetime(2014, 11, 30, 9, 52, 49, 209102)), 
      A(id=u'DHCS4J', time=datetime.datetime(2014, 11, 30, 9, 53, 36, 495319)) 
     ] 
spam.sort(key=lambda x:x.time) 

Извлеченный здесь: Python: Tuples/dictionaries as keys, select, sort

+1

Спасибо happyhamburger за то, что нашли время ответить на мой вопрос. Я нашел это лучшим решением 'list.sort (key = lambda r: r.time, reverse = True)' – mrmo123

+0

Хе-хе, мне пришлось изменить свой ответ там;) – IonicBurger

+0

Вы могли бы просто удалить «обычный сортировка кортежа ", потому что это не кортеж, а кортежи используют скобки и списки используют квадратные скобки. – mrmo123

Смежные вопросы