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)