Pitão

Python xrange vs. alcance

Python xrange vs. alcance
Até a versão 2 do Python.x, havia um total de dois métodos subjacentes usados ​​nesta linguagem para gerar a lista de inteiros dentro de um intervalo fornecido. Os dois métodos estão listados abaixo:

alcance ()
xrange ()

Seguindo em frente, com a versão mais recente do Python (3 em diante), range () foi retirado e xrange () foi então alterado para range (). Agora, no Python 3, há apenas uma função para este método, i.e., alcance (). No Python 3, a função range () é apenas outra maneira de implementar a versão mais antiga de xrange () do python 2.x. Aqui, vamos relacionar os dois.

Xrange ()

O xrange () é usado para criar uma sequência numérica como a função range ().

Sintaxe

A sintaxe usada para definir xrange () é:

xrange (início, fim, etapa)

A função é usada para definir o intervalo de números começando de (está incluído) até o final (não está incluído).

Parâmetros

A seguir está a lista de parâmetros necessários:

Início: posição inicial da sequência numérica
Fim: posição final da sequência numérica
Etapa: a distinção entre dois números consecutivos na série.

Exemplos

No exemplo a seguir, vamos verificar as maneiras de definir xrange.

Aqui, estaremos especificando apenas a posição final.

Portanto, o valor final é definido como 5 e, em seguida, obtemos a posição final impressa, conforme mostrado abaixo:

Agora, veremos o método de chamada de intervalo, a sintaxe para chamar final será:

>>> x = xrange (fim)

Então vamos imprimi-lo.

Obteremos o intervalo na saída, conforme mostrado acima.

Agora, vamos definir os pontos inicial e final. Aqui, o ponto inicial é 2 e o ponto final é 5. Em seguida, imprimimos as posições inicial e final, conforme mostrado abaixo:

Depois disso, estaremos criando uma sequência de números de nossos pontos inicial e final, i.e., 2 a 5.

>>> y = xrange (início, fim)

Por fim, verificaremos o método de definição do ponto de partida, da etapa e do ponto final. Depois de definir todos os três parâmetros; vamos chamá-los de forma semelhante ao método mostrado abaixo:

Agora, para chamar o xrange para esses três parâmetros, usaremos a seguinte sintaxe:

>>> z = xrange (início, etapa, fim)

Alcance ()

Range () é usado para criar uma lista e é uma função mais rápida para múltiplas iterações.

Sintaxe

A seguinte sintaxe é usada:

>>> intervalo (início, fim, etapa)

Exemplos

Para o primeiro caso, iremos definir o valor final. A sintaxe usada para isso é:

>>> intervalo (fim)

Então, no exemplo dado abaixo, estaremos usando 3 como o valor final do intervalo. Quando o imprimimos, ele retorna os valores, excluindo o valor final.

No exemplo subsequente, estamos usando o exemplo de descrição do ponto inicial e final. O valor começará em 1 e terminará em 10 (excluindo-o). O ponto de partida é incluído, mas o ponto final é omitido. A sintaxe é semelhante à fornecida abaixo:

>>> intervalo (início, fim)

Então, definimos o ponto de partida e, em seguida, o ponto final, que é 1 e 10, respectivamente.

Agora, no exemplo subsequente, teremos a função step. A função que define a lacuna entre quaisquer dois pontos dentro da sequência. O valor começará em 0 e terminará em 10 (excluindo-o). A sintaxe usada é fornecida a seguir:

>>> intervalo (início, etapa, fim)

O exemplo é dado abaixo, onde 2 é o valor da etapa.

Vantagens

alcance ()

É mais rápido se as iterações forem feitas várias vezes. range () tem apenas os valores de objetos inteiros em tempo real. Em termos de memória, não executa bem.

xrange ()

Tem que recriar o objeto inteiro todas as vezes. xrange () não é, uma vez que não suporta fatias e métodos de lista. xrange () ocupa a mesma quantidade de memória. Então, no que diz respeito ao desempenho, especialmente quando os usuários estão iterando em um valor de intervalo maior, xrange () tem um desempenho muito melhor.

Semelhanças entre Python 2 e Python 3 range e xrange

O xrange do Python 2 tem uma representação descritiva na forma de string, que é muito semelhante ao valor do objeto range do Python 3.

O valor de xrange () em Python 2 é iterável, assim como rang () em Python 3.

xrange () e range () têm ambos valores de etapa, final e ponto inicial. Em ambos os casos, etapa é um campo opcional, assim como o valor inicial.

Ambos xrange do Python 2 e 3 suportam comprimento que pode ser indexado em ordem direta ou reversa. Aqui está um exemplo do mesmo:

Dissimilaridades entre range () e xrange ()

Uma vez que xrange () avalia apenas o objeto gerador com os valores necessários para a avaliação preguiçosa, é mais rápido implementar no intervalo (). range () ajuda a retornar a lista e tem todos os objetos que podem ser usados, enquanto xrange () retorna os objetos associados a uma lista e não pode ser aplicado a eles para que possamos considerá-los uma desvantagem.

A variável usada na função range () armazena o valor de range e, portanto, ocupa muita memória em comparação com xrange () que ocupa apenas um pouco da memória devido às variáveis. range () retorna um objeto range, enquanto xrange () retorna um objeto gerador.

A função range (1, 7, 2) retornará a saída [1, 3, 5] e a entrada xrange (1, 7, 2) irá produzir a saída [1, 3, 5]. É assim que podemos assumir que eles são semelhantes no padrão.

Conclusão

range () e xrange () têm características diferentes, conforme discutido acima. Todas as comparações mencionadas neste tutorial, junto com os exemplos, serão úteis para os leitores escolherem melhor seu método preferido com base em seus requisitos.

Melhores distros Linux para jogos em 2021
O sistema operacional Linux percorreu um longo caminho desde sua aparência original, simples e baseada em servidor. Este sistema operacional melhorou ...
Como capturar e transmitir sua sessão de jogo no Linux
No passado, jogar era considerado apenas um hobby, mas com o tempo a indústria de jogos viu um grande crescimento em termos de tecnologia e número de ...
Melhores jogos para jogar com rastreamento manual
Oculus Quest introduziu recentemente a grande ideia de rastreamento manual sem controladores. Com um número cada vez maior de jogos e atividades que e...