Python-Bereich mit fester Anzahl von Elementen und festem Intervall
Oct 15 2020
Ich muss rangeso etwas in Pyhton erstellen:
1 ... 4 ... 7 ... 10 ... 13 ... 16 ...
Aber ich möchte nicht das Ende des Bereichs , sondern die Anzahl der Elemente festlegen .
Zum Beispiel:
range_num_of_elements(1, num_of_elements=4, interval=3)
Gibt als Ergebnis:
[1, 4, 7, 10]
Wie kann ich es tun?
EDIT: diese Frage
Erstellen eines Bereichs mit fester Anzahl von Elementen (Länge)
Beantwortet meine Frage nicht. Ich möchte Start, Intervall, Nummer angeben , wobei die obige Frage Start, Ende, Nummer angibt .
Antworten
1 hiroprotagonist Oct 15 2020 at 19:46
Sie können Ihren Bereich einfach so definieren:
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]
dies hätte alle schönen Eigenschaften von range; z.B:
7 in my_range(1, 4, 3) # True
8 in my_range(1, 4, 3) # False
2 khelwood Oct 15 2020 at 19:46
Sie können ein Listenverständnis verwenden :
[start + interval * n for n in range(num_of_elements)]
Wo
start = 1
interval = 3
num_of_elements = 4
Dies wird geben
[1, 4, 7, 10]
Oder Sie können einfach die entsprechenden Argumente berechnen range, wie Tom Karzes in den Kommentaren vorgeschlagen hat:
range(start, start + interval * num_of_elements, interval)