CodeGym /Cursos /Python SELF PT /Ordenação de listas

Ordenação de listas

Python SELF PT
Nível 7 , Lição 8
Disponível

8.1 Ordenação da lista

Ordenar listas no Python é uma operação importante que permite organizar dados para facilitar a análise ou apresentação. O Python oferece várias maneiras de ordenar listas, e cada uma pode ser útil dependendo da tarefa e dos resultados desejados.

Método sort()

O método sort() ordena a lista no lugar, ou seja, altera a lista original. Ele é muito eficiente e permite personalizar a ordenação através de argumentos.


numbers = [5, 2, 9, 1]
numbers.sort()
print(numbers)  # Mostra [1, 2, 5, 9] 

Você pode ordenar a lista em ordem decrescente definindo o parâmetro reverse=True.


numbers = [5, 2, 9, 1]
numbers.sort(reverse=True)
print(numbers)  # Mostra [9, 5, 2, 1]

Função sorted()

A função sorted() cria uma nova lista que é uma versão ordenada da lista original. A lista original não é alterada, o que muitas vezes faz do sorted() a escolha preferida quando é necessário manter os dados originais inalterados.


numbers = [5, 2, 9, 1]
sorted_numbers = sorted(numbers)
print(sorted_numbers)  # Mostra [1, 2, 5, 9]
print(numbers)  # Lista original não alterada [5, 2, 9, 1]

É importante lembrar que sort() altera a lista original, enquanto sorted() retorna uma nova lista ordenada, deixando o original inalterado. Use sort() se precisar alterar os dados no local e sorted() se quiser manter a ordem dos dados originais.

8.2 Ordenação por chave

Às vezes, você precisa de cenários de ordenação mais complexos ou ordenar ignorando alguns parâmetros. Nesse caso, a "ordenção por chave" ajuda. Para usá-la, é necessário passar para o método sort() ou função sorted() um parâmetro especial — key.

Como valor do parâmetro key, você deve passar uma função que será usada para comparar os elementos.

Comparação de strings sem considerar maiúsculas e minúsculas

Antes da comparação, todas as strings são convertidas para minúsculas


alist = ["banana", "Orange", "Kiwi", "cherry"]
alist.sort(key=str.lower)
print(alist)  # Mostra ['banana', 'cherry', 'Kiwi', 'Orange']

Exemplo de ordenação de lista de tuplas

Suponha que você tenha uma lista de estudantes, onde cada elemento é uma tupla (tuple) contendo o nome do estudante e sua nota. Você quer ordenar os estudantes pelas suas notas:


students = [('Alice', 88), ('Bob', 75), ('Carol', 96)]

def get_grade(student):
    return student[1]
            
students.sort(key=get_grade)
print(students)  # Mostra [('Bob', 75), ('Alice', 88), ('Carol', 96)]

Exemplo de ordenação de lista de dicionários

Ou você tem uma lista de dicionários, onde cada dicionário contém informações sobre estudantes. Para ordená-los pelas notas, você deve escrever um código assim:


students = [
    {'name': 'Alice', 'grade': 88},
    {'name': 'Bob', 'grade': 75},
    {'name': 'Carol', 'grade': 96}
]
        
def get_grade(student):
    return student['grade']
        
sorted_students = sorted(students, key=get_grade)
print(sorted_students)  # Mostra [{'name': 'Bob', 'grade': 75}, {'name': 'Alice', 'grade': 88}, {'name': 'Carol', 'grade': 96}]
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION