2015-05-31 2 views
0

У меня есть контролируемая оценка, и мне нужно иметь возможность заказать баллы из теста в цифровом и алфавитном порядке. Как это сделать, если они связаны с именем человека, которое завершило викторину. Все имена находятся в пределах 1 списка, например ["John, 9"], ["alfie, 6"] и т. Д.Как я могу сортировать целые числа в списке, если они находятся в строке?

любая помощь очень ценится!

+3

Какой язык? – Marged

+0

На каких языках вы пишете? Общий атрибут будет состоять в том, чтобы разбить входную строку на ',' на две части, затем перевести вторую строку в целое число, добавить ее в структуру с первой, написать компаратор и, наконец, отсортировать. – user35443

+0

Разделите строку, извлеките целые числа и закажите основной список на основе этого. – GillesC

ответ

0

Если вы хотите, чтобы отсортировать список строк, основанный на преобразовании на каждой из этих строк, вы можете использовать функцию sorted с аргументом key ключевого слова:

>>> l = ['10', '9', '100', '8'] 
>>> sorted(l) 
['10', '100', '8', '9'] 
>>> sorted(l, key=int) 
['8', '9', '10', '100'] 
>>> def transformation(x): 
...  return -int(x) 
... 
>>> sorted(l, key=transformation) 
['100', '10', '9', '8'] 

Что функция key делает то, что строки не сравниваются напрямую, но значения, возвращаемые функцией, являются.

+0

Это выглядит идеально. Спасибо большое! я действительно борюсь с этой оценкой, поэтому любая помощь, которую я могу получить, - огромный бонус! –

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

  • Нет связанных вопросов^_^