2015-02-18 5 views
1

Скажем, у меня были списки, что я хотел, чтобы отсортировать - число от высшего к низшему - который содержал оба названия и номера, например:Сортировка чисел в списке - Python

A = ["LA" , 10 , 3 , 4] #lists ending with a comma after the closing bracket are interpreted as tuples containing a list 
B = ["NY" , 4 , 2 , 2] #need quotes around the AK, etc 
C = ["AK" , 1 , 4 , 6] , 
D = ["WA" , 7 , 9 , 2] , 

Как бы отсортировать эти списки сделать числа в порядке убывания (от наивысшего до самого низкого)?

+3

Пытались ли вы что-нибудь? –

+1

Это ваш фактический код? Вы можете быть удивлены, обнаружив, что A, B, C и D не являются списками. Это кортежи, каждая из которых содержит один элемент. – Kevin

+0

Это не мой код, однако я просто использовал это в качестве примера. Пожалуйста, учтите, что я новичок в кодировании. –

ответ

0

Для нисходящего; (тексты придут первый)

>>> import numbers 
>>> import sys 

>>> A = ["LA", 10, 3, 4] 
>>> print sorted(A, key=lambda n: n if isinstance(n, numbers.Number) else sys.float_info.max, reverse=True) 
['LA', 10, 4, 3] 

Для возрастающего порядка; (тексты придут первый)

>>> print sorted(A, key=lambda n: n if isinstance(n, numbers.Number) else sys.float_info.min, reverse=False) 
['LA', 3, 4, 10] 

Для убывающего порядка; (тексты придут последними)

>>> print sorted(A, key=lambda n: n if isinstance(n, numbers.Number) else sys.float_info.min, reverse=True) 
[10, 4, 3, 'LA'] 
-1

Try:

a=['gg', 10, 1, 100, 55] 
def myKey(x): 
    if isinstance(x,str): 
     return -99999999 
    else: 
     return x #or -1 * key if you want the numbers in reverse order 
a.sort(key=myKey) 
reversed(a) #will give you a in reversed order -- string at the end 

Ключевой аргумент определяет функцию, которая будет использоваться для «преобразования» каждый элемент в ключ для сортировки. Обратный итератор просто дает элементы в обратном порядке ....

+0

Он говорит, что basestring не определен, почему? –

+0

basestring и print как инструкция являются конструкциями python2. Они были отредактированы ... –

+0

Это выглядит действительно хорошо! Он в порядке возрастания, как мне заставить его идти в порядке убывания? Это ключ = обратный? –

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