Fale sobre a diferença entre o método list.sort () e a função ordenada () em Python

(1) método list.sort ()

O método list.sort () classifica no local, o que significa que ele atuará diretamente na lista atual e transformará diretamente a lista atual em uma lista classificada. Ele retornará Nenhum. Em Python, se uma função ou método modifica um objeto no local, geralmente falando, eles retornarão None. O objetivo disso é permitir que os usuários da API saibam que essa função ou método foi modificado no local. Por exemplo, a função random.shuffle também possui esse recurso.

O método shuffle () classificará aleatoriamente todos os elementos da sequência.

Existem vantagens e desvantagens, porque essas funções ou métodos só podem retornar None, portanto, não podem ser conectados um a um como a programação de streaming.

(2) A função interna classificada ()

A função integrada classificada aceita qualquer forma de objeto iterável como um parâmetro de entrada e cria uma nova lista como o valor de retorno.

(3) Parâmetros de palavras-chave

O método list.sort () e a função interna classificada () têm os dois parâmetros opcionais de palavra-chave a seguir.

Parâmetro de palavra-chave Padrões Descrição
reverter Falso Ordem reversa
chave Classificação de valor Algoritmo de classificação; str.lower: classificar ignorando maiúsculas e minúsculas; len: classificar com base no comprimento da string

(4) Exemplo

Luciano Ramalho deu esse exemplo para ilustrar a diferença entre o método list.sort () e a função classificada ().

fruits=['grape','raspberry','apple','banana']
result=sorted(fruits)
logging.info('sorted(fruits) -> %s',result)
logging.info('fruits -> %s',fruits)

result=sorted(fruits,reverse=True)
logging.info('sorted(fruits,reverse=True) -> %s',result)

result=sorted(fruits,key=len)
logging.info('sorted(fruits,key=len) -> %s',result)

result=sorted(fruits,reverse=True,key=len)
logging.info('sorted(fruits,reverse=True,key=len) -> %s',result)

result=fruits.sort()
logging.info('sort() -> %s',result)
logging.info('fruits.sort() from fruits-> %s',fruits)

resultado da operação:

INFO - sorted(fruits) -> ['apple', 'banana', 'grape', 'raspberry']
INFO - fruits -> ['grape', 'raspberry', 'apple', 'banana']
INFO - sorted(fruits,reverse=True) -> ['raspberry', 'grape', 'banana', 'apple']
INFO - sorted(fruits,key=len) -> ['grape', 'apple', 'banana', 'raspberry']
INFO - sorted(fruits,reverse=True,key=len) -> ['raspberry', 'banana', 'grape', 'apple']
INFO - sort() -> None
INFO - fruits.sort() from fruits-> ['apple', 'banana', 'grape', 'raspberry']

Você pode ver que o método list.sort () é classificado no local e a função classificada () não afeta o objeto original, ela retornará um novo objeto que foi classificado.

Acho que você gosta

Origin blog.csdn.net/deniro_li/article/details/108893027
Recomendado
Clasificación