Python xrange vs. range

Python Xrange Vs Range



Até o Python versão 2.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:

faixa ()
xrange ()







Seguindo em frente, com a versão mais recente do Python (3 em diante), range () foi retirado e xrange () foi alterado para range (). Agora, no Python 3, há apenas uma função para esse método, ou seja, range (). No Python 3, a função range () é apenas outra maneira de implementar a versão mais antiga de xrange () do python 2.x. Aqui, relacionaremos 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(começar,fim,Passo)

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

Parâmetros

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



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

Exemplos

No exemplo a seguir, verificaremos as maneiras de definir xrange.

Aqui, iremos especificar 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, definiremos 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, ou seja, 2 a 5.

>>>e= xrange(começar,fim)

Por fim, verificaremos o método de definição do ponto inicial, 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:

>>>Com= xrange(começar,Passo,fim)

Faixa ()

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

Sintaxe

A seguinte sintaxe é usada:

>>> faixa(começar,fim,Passo)

Exemplos

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

>>> faixa(fim)

Portanto, no exemplo dado abaixo, usaremos 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 inicial é incluído, mas o ponto final é omitido. A sintaxe é semelhante à fornecida abaixo:

>>> faixa (começar,fim)

Portanto, 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 na sequência. O valor começará em 0 e terminará em 10 (excluindo-o). A sintaxe usada é fornecida a seguir:

>>> faixa (começar,Passo,fim)

O exemplo é dado abaixo, onde 2 é o valor do passo.

Vantagens

faixa ()

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

xrange ()

Ele 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. Portanto, 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 () possuem 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 ()

Como xrange () avalia apenas o objeto gerador com os valores necessários para a avaliação preguiçosa, é mais rápido implementar em range (). 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 parte 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.