Wie erstelle ich eine aufsteigende Liste zwischen zwei Werten? Zum Beispiel eine Liste zwischen 11 und 16:
[11, 12, 13, 14, 15, 16]
Wie erstelle ich eine aufsteigende Liste zwischen zwei Werten? Zum Beispiel eine Liste zwischen 11 und 16:
[11, 12, 13, 14, 15, 16]
Verwenden Sie range
. In Python 2 gibt es direkt eine Liste zurück:
>>> range(11, 17)
[11, 12, 13, 14, 15, 16]
In Python 3 ist range
ein Iterator. Um es in eine Liste umzuwandeln:
>>> list(range(11, 17))
[11, 12, 13, 14, 15, 16]
Hinweis: Die zweite Zahl in range(start, stop)
ist exklusiv. Also, stop = 16+1 = 17
.
Um Schritte von 0.5
zu inkrementieren, kann man numpy's arange()
und .tolist()
in Betracht ziehen:
>>> import numpy as np
>>> np.arange(11, 17, 0.5).tolist()
[11.0, 11.5, 12.0, 12.5, 13.0, 13.5,
14.0, 14.5, 15.0, 15.5, 16.0, 16.5]
Siehe: Wie verwende ich einen Dezimalschrittwert für range()?
Sie scheinen nach range()
zu suchen:
>>> x1=11
>>> x2=16
>>> range(x1, x2+1)
[11, 12, 13, 14, 15, 16]
>>> list1 = range(x1, x2+1)
>>> list1
[11, 12, 13, 14, 15, 16]
Für eine Erhöhung um 0.5
anstelle von 1
, sagen Sie:
>>> list2 = [x*0.5 for x in range(2*x1, 2*x2+1)]
>>> list2
[11.0, 11.5, 12.0, 12.5, 13.0, 13.5, 14.0, 14.5, 15.0, 15.5, 16.0]
Wenn Sie nach einer Bereichsfunktion suchen, die für den Float-Typ funktioniert, dann ist hier ein sehr guter Artikel.
def frange(start, stop, step=1.0):
''' "range()" ähnliche Funktion, die den Float-Typ akzeptiert'''
i = start
while i < stop:
yield i
i += step
# Generiere ein Element nach dem anderen.
# Bevorzugt, wenn Sie nicht alle generierten Elemente zur gleichen Zeit benötigen.
# Das spart Speicherplatz.
for i in frange(1.0, 2.0, 0.5):
print i # Verwenden Sie das generierte Element.
# Generiere alle Elemente auf einmal.
# Bevorzugt, wenn die generierte Liste klein sein sollte.
print list(frange(1.0, 10.0, 0.5))
Ausgabe:
1.0
1.5
[1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0, 6.5, 7.0, 7.5, 8.0, 8.5, 9.0, 9.5]
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.