Rango de Python con número fijo de elementos e intervalo fijo
Oct 15 2020
Necesito crear algo rangeasí en Pyhton:
1 ... 4 ... 7 ... 10 ... 13 ... 16 ...
Pero me gustaría establecer no el final del rango , sino el número de elementos .
Por ejemplo:
range_num_of_elements(1, num_of_elements=4, interval=3)
Da como resultado:
[1, 4, 7, 10]
¿Cómo puedo hacerlo?
EDITAR: esta pregunta
Creando un rango con un número fijo de elementos (longitud)
No responde a mi pregunta. Quiero especificar inicio, intervalo, num , donde la pregunta anterior especifica inicio, final, num .
Respuestas
1 hiroprotagonist Oct 15 2020 at 19:46
podría definir su rango así:
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]
esto tendría todas las características interesantes de range; p.ej:
7 in my_range(1, 4, 3) # True
8 in my_range(1, 4, 3) # False
2 khelwood Oct 15 2020 at 19:46
Puede utilizar una lista de comprensión :
[start + interval * n for n in range(num_of_elements)]
Dónde
start = 1
interval = 3
num_of_elements = 4
Esto le dará
[1, 4, 7, 10]
O simplemente puede calcular los argumentos apropiados para range, como sugirió Tom Karzes en los comentarios:
range(start, start + interval * num_of_elements, interval)