Verificar com all() e zip()
Nesta etapa, você aprenderá como usar as funções all() e zip() para verificar se uma lista está ordenada. Essas funções fornecem uma maneira concisa e eficiente de verificar a ordem dos elementos em uma lista.
Primeiro, vamos entender a função zip(). A função zip() recebe múltiplos iteráveis (por exemplo, listas) como entrada e retorna um iterador de tuplas, onde cada tupla contém os elementos correspondentes dos iteráveis de entrada.
Considere o seguinte exemplo:
list1 = [1, 2, 3]
list2 = [4, 5, 6]
zipped = zip(list1, list2)
print(list(zipped))
Adicione este código ao seu arquivo sort_list.py, substituindo o conteúdo anterior. Em seguida, execute o script:
python sort_list.py
Você deve ver a seguinte saída:
[(1, 4), (2, 5), (3, 6)]
A função zip() criou um iterador que produz tuplas contendo elementos correspondentes de list1 e list2.
Agora, vamos entender a função all(). A função all() recebe um iterável como entrada e retorna True se todos os elementos no iterável forem verdadeiros, e False caso contrário.
Considere o seguinte exemplo:
bool_list = [True, True, True]
print(all(bool_list))
bool_list = [True, False, True]
print(all(bool_list))
Adicione este código ao seu arquivo sort_list.py e execute-o:
python sort_list.py
Você verá a seguinte saída:
True
False
Agora, vamos combinar zip() e all() para verificar se uma lista está ordenada. A ideia é comparar cada elemento com o próximo elemento na lista e verificar se a lista está em ordem ascendente.
numbers = [1, 2, 3, 4, 5]
is_sorted = all(numbers[i] <= numbers[i+1] for i in range(len(numbers)-1))
print(is_sorted)
numbers = [1, 2, 5, 4, 5]
is_sorted = all(numbers[i] <= numbers[i+1] for i in range(len(numbers)-1))
print(is_sorted)
Modifique seu arquivo sort_list.py para incluir este código. Execute o script novamente:
python sort_list.py
Você deve ver a seguinte saída:
True
False
Este código usa uma expressão geradora com zip() para comparar elementos adjacentes na lista. A função all() então verifica se todas as comparações são verdadeiras, indicando que a lista está ordenada.
Essa abordagem fornece uma maneira concisa e eficiente de verificar se uma lista está ordenada em Python.