Como criar uma lista com valores entre dois valores inseridos? Por exemplo, a seguinte lista é gerada para valores de 11 a 16:
list = [11, 12, 13, 14, 15, 16]
Use range
. No Python 2.x, ele retorna uma lista, então tudo que você precisa é:
>>> range(11, 17)
[11, 12, 13, 14, 15, 16]
No Python 3.x range
é um iterador. Então, você precisa convertê-lo em uma lista:
>>> list(range(11, 17))
[11, 12, 13, 14, 15, 16]
Nota : O segundo número é exclusivo. Então, aqui precisa ser 16+1
=17
EDITAR:
Para responder à pergunta sobre incrementar por 0.5
, a opção mais fácil provavelmente seria usar o numpy arange()
e .tolist()
:
>>> import numpy as np
>>> np.arange(11, 17, 0.5).tolist()
[11.0, 11.5, 12.0, 12.5, 13.0, 13.5,
14.0, 14.5, 15.0, 15.5, 16.0, 16.5]
step
parâmetro, mas isso ainda é um int - não flutuante. Você não pode fazer isso exatamente na biblioteca padrão.Você parece estar procurando
range()
:Para incrementar em
0.5
vez de1
, diga:fonte
list
como uma variável.list
é uma classe embutido, então seu uso como uma variável é um pouco desanimadoTentar:
Essa é uma lista no Python 2.xe se comporta principalmente como uma lista no Python 3.x. Se você estiver executando o Python 3 e precisar de uma lista que possa modificar, use:
fonte
Se você está procurando uma função de faixa que funciona para o tipo float, aqui está um artigo muito bom .
Resultado:
fonte
Use a compreensão da lista em python. Como você também quer 16 na lista .. Use x2 + 1. A função Range exclui o limite mais alto na função.
fonte
range()
sem necessidade de usar uma compreensão de listalist(range(x1, x2+1))
.supondo que você queira ter um intervalo entre x e y
lista de uso para suporte 3.x
fonte
Em python, você pode fazer isso muito avidamente
ou você pode criar uma função recursiva que retorna uma matriz até um determinado número:
output: ar = [10,9,8,7,6,5,4,3,2,1,0]
fonte
A maneira mais elegante de fazer isso é usando a
range
função; no entanto, se você deseja recriar essa lógica, pode fazer algo assim:Isso produz a saída:
Conforme expresso anteriormente por @Jared, a melhor maneira é usar o
range
ou,numpy.arrange
no entanto, acho o código interessante para ser compartilhado.fonte
[x for x in range(10, 3, 1)]
- o primeiro argumento é o começo, o segundo o fim e o último o passo. ==> stop> startTodas as respostas acima assumem que o intervalo é apenas de números positivos. Aqui está a solução para retornar a lista de números consecutivos em que os argumentos podem ser quaisquer (positivos ou negativos), com a possibilidade de definir o valor opcional da etapa (padrão = 1).
Por exemplo, o comando padrão
list(range(1,-3))
retorna a lista vazia[]
, enquanto esta função retorna[-3,-2,-1,0,1]
Atualizado : agora a etapa pode ser negativa. Obrigado @ Michael pelo seu comentário.
fonte
i_min = -3, i_max = 1
any_number_range(i_max, i_min))
retornado.[-3,-2,-1,0,1]
Mas, builtinlist(range(i_min, i_max + 1))
retornará os mesmos valores.list(range(1,-3, -1))