2013-08-16 3 views
-2

Я пытаюсь отсортировать этот список по номерам, найденным в каждом элементе.Сортировка алфавитно-цифрового списка

revision_type = [('100K Revision', '50K Revision', '25K Revision')] 

Это то, что я придумал до сих пор, но получаю сообщение об ошибке:

AttributeError: 'tuple' object has no attribute 'partition' 
revision_sorted = sorted(revision_type, key=lambda s: (int(s.partition(' ')[0][:-1]))) 

Я хочу, чтобы список revision_sorted быть:

[('25K Revision', '50K Revision', '100K Revision')] 

Been баловаться с этим в течение нескольких часов любая помощь была бы весьма признательна.

+4

каком языке ою использовать? –

+0

Какое сообщение об ошибке? – Amicable

ответ

0

Я думаю, вы были очень близки. revision_type - это список с кортежем. Итак, вам нужно извлечь первый элемент и перейти к сортированной функции.

revision_type = [('100K Revision', '50K Revision', '25K Revision')] 
revision_sorted = [tuple(sorted(revision_type[0], key=lambda s: (int(s.partition(' ')[0][:-1]))))] 
print revision_sorted 

Выход

[('25K Revision', '50K Revision', '100K Revision')] 
+0

Большое спасибо, отлично работает – rkay

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