Faixa Python com número fixo de elementos e intervalo fixo
Oct 15 2020
Preciso criar um rangeassim em Pyhton:
1 ... 4 ... 7 ... 10 ... 13 ... 16 ...
Mas eu gostaria de estabelecer não o fim do intervalo , mas o número de elementos .
Por exemplo:
range_num_of_elements(1, num_of_elements=4, interval=3)
Dá como resultado:
[1, 4, 7, 10]
Como eu posso fazer isso?
EDIT: esta questão
Criação de um intervalo com número fixo de elementos (comprimento)
Não responde minha pergunta. Eu quero especificar início, intervalo, num , onde a pergunta acima especifica início, fim, num .
Respostas
1 hiroprotagonist Oct 15 2020 at 19:46
você pode definir seu intervalo assim:
def my_range(start, num_elements, step):
return range(start, start+step*num_elements, step)
list(my_range(1, 4, 3))
# [1, 4, 7, 10]
isso teria todos os recursos interessantes de range; por exemplo:
7 in my_range(1, 4, 3) # True
8 in my_range(1, 4, 3) # False
2 khelwood Oct 15 2020 at 19:46
Você pode usar uma compreensão de lista :
[start + interval * n for n in range(num_of_elements)]
Onde
start = 1
interval = 3
num_of_elements = 4
Isso vai dar
[1, 4, 7, 10]
Ou você pode apenas calcular os argumentos apropriados para range, como Tom Karzes sugeriu nos comentários:
range(start, start + interval * num_of_elements, interval)
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?