Gamma Python con numero fisso di elementi e intervallo fisso
Oct 15 2020
Ho bisogno di creare un rangesimile in Pyhton:
1 ... 4 ... 7 ... 10 ... 13 ... 16 ...
Ma vorrei stabilire non la fine dell'intervallo , ma il numero di elementi .
Per esempio:
range_num_of_elements(1, num_of_elements=4, interval=3)
Dà come risultato:
[1, 4, 7, 10]
Come posso farlo?
EDIT: questa domanda
Creazione di un intervallo con numero fisso di elementi (lunghezza)
Non risponde alla mia domanda. Voglio specificare inizio, intervallo, num , dove la domanda sopra specifica inizio, fine, num .
Risposte
1 hiroprotagonist Oct 15 2020 at 19:46
potresti definire la tua gamma proprio in questo modo:
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]
questo avrebbe tutte le belle caratteristiche di range; per esempio:
7 in my_range(1, 4, 3) # True
8 in my_range(1, 4, 3) # False
2 khelwood Oct 15 2020 at 19:46
Puoi usare una comprensione dell'elenco :
[start + interval * n for n in range(num_of_elements)]
Dove
start = 1
interval = 3
num_of_elements = 4
Questo darà
[1, 4, 7, 10]
Oppure puoi semplicemente calcolare gli argomenti appropriati range, come suggerito da Tom Karzes nei commenti:
range(start, start + interval * num_of_elements, interval)