Gamme Python avec un nombre fixe d'éléments et un intervalle fixe
J'ai besoin de créer un rangecomme celui-ci dans Pyhton:
1 ... 4 ... 7 ... 10 ... 13 ... 16 ...
Mais je voudrais établir non pas la fin de la plage , mais le nombre d'éléments .
Par exemple:
range_num_of_elements(1, num_of_elements=4, interval=3)
Donne comme résultat:
[1, 4, 7, 10]
Comment puis-je le faire?
EDIT: cette question
Créer une plage avec un nombre fixe d'éléments (longueur)
Ne répond pas à ma question. Je veux spécifier le début, l'intervalle, le nombre , où la question ci-dessus spécifie le début, la fin, le nombre .
Réponses
vous pouvez définir votre gamme comme ceci:
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]
cela aurait toutes les fonctionnalités intéressantes de range; par exemple:
7 in my_range(1, 4, 3) # True
8 in my_range(1, 4, 3) # False
Vous pouvez utiliser une compréhension de liste :
[start + interval * n for n in range(num_of_elements)]
Où
start = 1
interval = 3
num_of_elements = 4
Cela donnera
[1, 4, 7, 10]
Ou vous pouvez simplement calculer les arguments appropriés pour range, comme l'a suggéré Tom Karzes dans les commentaires:
range(start, start + interval * num_of_elements, interval)