Wie würde ich eine Liste mit Werten zwischen zwei von mir eingegebenen Werten erstellen? Beispielsweise wird die folgende Liste für Werte von 11 bis 16 generiert:
list = [11, 12, 13, 14, 15, 16]
Verwenden Sie range
. In Python 2.x wird eine Liste zurückgegeben, sodass Sie lediglich Folgendes benötigen:
>>> range(11, 17)
[11, 12, 13, 14, 15, 16]
In Python 3.x range
ist ein Iterator. Sie müssen es also in eine Liste konvertieren:
>>> list(range(11, 17))
[11, 12, 13, 14, 15, 16]
Hinweis : Die zweite Nummer ist exklusiv. Also, hier muss es sein 16+1
=17
BEARBEITEN:
Um auf die Frage nach dem Inkrementieren um zu antworten, ist 0.5
es wahrscheinlich am einfachsten, numpys arange()
und .tolist()
:
>>> 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]
step
Parameter um mehr als 1 erhöhen, aber das ist immer noch ein int - nicht float. Sie können das nicht genau in der Standardbibliothek tun.Sie scheinen zu suchen
range()
:Zum Inkrementieren um
0.5
statt1
sagen Sie:quelle
list
als Variable.list
ist eine eingebaute Klasse, so dass seine Verwendung als Variable etwas entmutigt wirdVersuchen:
Das ist eine Liste in Python 2.x und verhält sich meistens wie eine Liste in Python 3.x. Wenn Sie Python 3 ausführen und eine Liste benötigen, die Sie ändern können, verwenden Sie:
quelle
Wenn Sie nach einer bereichsähnlichen Funktion suchen, die für den Float-Typ funktioniert, dann ist hier ein sehr guter Artikel .
Ausgabe:
quelle
Verwenden Sie das Listenverständnis in Python. Da du auch 16 in der Liste haben willst .. Verwende x2 + 1. Die Bereichsfunktion schließt die Obergrenze in der Funktion aus.
quelle
range()
keine Notwendigkeit verwenden, ein Listenverständnis zu verwendenlist(range(x1, x2+1))
.Angenommen, Sie möchten einen Bereich zwischen x und y haben
Verwenden Sie die Liste für die 3.x-Unterstützung
quelle
In Python können Sie dies sehr schnell tun
oder Sie können eine rekursive Funktion erstellen, die ein Array bis zu einer bestimmten Zahl zurückgibt:
Ausgabe: ar = [10,9,8,7,6,5,4,3,2,1,0]
quelle
Der eleganteste Weg, dies zu tun, ist die Verwendung der
range
Funktion. Wenn Sie diese Logik jedoch neu erstellen möchten, können Sie Folgendes tun:Dies erzeugt die Ausgabe:
Wie bereits von @Jared erwähnt, ist es am besten , den Code zu verwenden,
range
odernumpy.arrange
ich finde den Code interessant, um ihn zu teilen.quelle
[x for x in range(10, 3, 1)]
- das erste Argument ist der Anfang, das zweite das Ende und das letzte der Schritt. ==> Stop> StartBei jeder obigen Antwort wird davon ausgegangen, dass der Bereich nur aus positiven Zahlen besteht. Hier ist die Lösung, um eine Liste von fortlaufenden Zahlen zurückzugeben, bei denen Argumente beliebig sein können (positiv oder negativ), mit der Möglichkeit, einen optionalen Schrittwert festzulegen (Standard = 1).
Beispielsweise gibt der Standardbefehl eine
list(range(1,-3))
leere Liste zurück[]
, während diese Funktion zurückgegeben wird[-3,-2,-1,0,1]
Aktualisiert : Jetzt kann der Schritt negativ sein. Danke @Michael für seinen Kommentar.
quelle
i_min = -3, i_max = 1
any_number_range(i_max, i_min))
zurückgegeben[-3,-2,-1,0,1]
wird. Eingebaute Funktionen gebenlist(range(i_min, i_max + 1))
jedoch dieselben Werte zurück.list(range(1,-3, -1))