2013-05-02 3 views
0

Я хочу, чтобы отсортировать мой список на основе первого элемента, такие как:Как отсортировать список по списку?

fruits = \ 
[['Mango', 6, 5, 8.0], 
['Banana', 2.0, 5, 8.9, 7], 
['Pineapple', 4, 6.8, 9], 
['Apple', 3.9, 6, 7, 2]] 

быть разобрался, как это:

fruits = \ 
[['Apple', 3.9, 6, 7, 2], 
['Banana', 2.0, 5, 8.9, 7], 
['Mango', 6, 5, 8.0], 
['Pineapple', 4, 6.8, 9]] 

Я знаю, что я должен использовать sort() функции, но я не знаете, как правильно использовать его для получения результатов, которые я хочу.

+2

ли первые элементы строк списков? – Volatility

+0

@ Волатильность наиболее определенно – jamylak

ответ

1

В чем проблема? sort() уже сортируется по первому элементу.

In [14]: fruits = [["Mango", 6,5,8.0], 
     ["Banana", 2.0,5,8.9,7], 
     ["Pineapple", 4,6.8,9], 
     ["Apple", 3.9,6,7,2]] 

In [15]: fruits.sort() 

In [16]: fruits 
Out[16]: 
[['Apple', 3.9, 6, 7, 2], 
['Banana', 2.0, 5, 8.9, 7], 
['Mango', 6, 5, 8.0], 
['Pineapple', 4, 6.8, 9]] 

Если элементы являются классами или переменными, вы должны реализовать свои методы сравнения (__ge__, __le__, __gt__, __lt__) соответственно ваши сортировочных потребности.

Имейте в виду, что fruits.sort() изменяет список на месте, если вы хотите новый отсортированный копию, используйте sorted(fruits)

+0

хороший момент ... Я забыл это на секунду – jamylak

+0

@fortran, как я могу пропустить что-то вроде этого? Я действительно python noob. Спасибо за это! –

+0

ну, это случается ... Python выделяется в ясности большую часть времени, но в этом случае глобальная функция, подобная 'sorted' или метод list' sort', может сбивать с толку. – fortran

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