Como classificar listas e dicionários em Python

A classificação é uma operação fundamental na programação, permitindo que você organize dados em uma ordem desejada. O Python fornece ferramentas robustas para classificar listas e dicionários, facilitando a manipulação eficiente de dados. Neste artigo, exploraremos como classificar listas e dicionários em Python, incluindo vários métodos e exemplos.

Listas de classificação

Listas são uma das estruturas de dados mais comumente usadas em Python. Você pode classificar listas usando o método interno sort() ou a função sorted(). Veja como cada método funciona:

Usando sort()

O método sort() classifica uma lista no local, o que significa que ele modifica a lista original e não retorna uma nova lista. Por padrão, ele classifica em ordem crescente.

# Example: Sorting a list in ascending order
numbers = [4, 2, 9, 1, 5]
numbers.sort()
print(numbers)  # Output: [1, 2, 4, 5, 9]

# Example: Sorting a list in descending order
numbers = [4, 2, 9, 1, 5]
numbers.sort(reverse=True)
print(numbers)  # Output: [9, 5, 4, 2, 1]

Nos exemplos acima, o método sort() classifica a lista numbers primeiro em ordem crescente e depois em ordem decrescente usando o parâmetro reverse=True.

Usando sorted()

A função sorted() retorna uma nova lista ordenada e não altera a lista original. Ela também permite que você especifique a ordem de ordenação com o parâmetro reverse.

# Example: Using sorted() to get a new sorted list
numbers = [4, 2, 9, 1, 5]
sorted_numbers = sorted(numbers)
print(sorted_numbers)  # Output: [1, 2, 4, 5, 9]
print(numbers)  # Output: [4, 2, 9, 1, 5] (original list is unchanged)

# Example: Using sorted() to get a new sorted list in descending order
sorted_numbers_desc = sorted(numbers, reverse=True)
print(sorted_numbers_desc)  # Output: [9, 5, 4, 2, 1]

Aqui, sorted() retorna uma nova lista sorted_numbers sem alterar a lista original numbers. Você também pode classificar em ordem decrescente com o parâmetro reverse=True.

Classificando dicionários

Classificar dicionários envolve classificar o dicionário por chaves ou valores. Diferentemente de listas, dicionários são inerentemente desordenados até o Python 3.7, onde começaram a preservar a ordem de inserção. Veja como você pode classificar dicionários:

Classificando por Chaves

Para classificar um dicionário por suas chaves, use a função sorted() junto com compreensões de dicionário ou loops.

# Example: Sorting a dictionary by keys
data = {'banana': 3, 'apple': 4, 'orange': 2}
sorted_by_keys = {key: data[key] for key in sorted(data)}
print(sorted_by_keys)  # Output: {'apple': 4, 'banana': 3, 'orange': 2}

Neste exemplo, o dicionário data é classificado por suas chaves, resultando em um novo dicionário sorted_by_keys onde as chaves estão em ordem crescente.

Classificando por valores

Para classificar um dicionário por seus valores, você pode usar a função sorted() nos itens do dicionário e então criar um novo dicionário.

# Example: Sorting a dictionary by values
data = {'banana': 3, 'apple': 4, 'orange': 2}
sorted_by_values = dict(sorted(data.items(), key=lambda item: item[1]))
print(sorted_by_values)  # Output: {'orange': 2, 'banana': 3, 'apple': 4}

Aqui, data.items() retorna uma lista de tuplas, e sorted() é usado para classificar essas tuplas pelo segundo elemento (valor) usando uma função lambda. O resultado é um novo dicionário sorted_by_values com valores em ordem crescente.

Conclusão

Classificar listas e dicionários em Python é simples e poderoso, graças ao método sort() e à função sorted() para listas, e várias técnicas para dicionários. Entender esses métodos ajudará você a gerenciar e analisar dados de forma mais eficaz. Experimente essas técnicas de classificação para ver como elas podem ser aplicadas aos seus próprios projetos!