2015-04-10 18 views
29

Sagen Sie, wenn Sie eine Nummer eingegeben 8 in Python haben und man wollte eine Liste mit fortlaufenden Nummern bis zu 8 wieWie kann ich eine Liste von fortlaufenden Nummern generieren?

[0, 1, 2, 3, 4, 5, 6, 7, 8] 

Wie generieren könnten Sie dies tun?

+0

Haben Sie ch Klicken Sie auf die Dokumentation für ['range'] (https://docs.python.org/3/library/functions.html#func-range)? – thefourtheye

+0

Mögliches Duplikat von [Python - Liste mit Zahlen zwischen 2 Werten erstellen?] (Http://stackoverflow.com/questions/18265935/python-create-list-with-numbers-between-2-values) – kmm

Antwort

52

In Python 3, können Sie die eingebaute range Funktion wie diese verwenden können

>>> list(range(9)) 
[0, 1, 2, 3, 4, 5, 6, 7, 8] 

Anmerkung 1: Python range Funktion 3.x, kehrt ein range Objekt. Wenn Sie eine Liste wollen, müssen Sie diese explizit in eine Liste umwandeln, mit der list Funktion, die ich in der Antwort gezeigt habe.

Anmerkung 2: Wir passieren Nummer 9-range Funktion, da wird range Funktionsnummern erzeugen, bis die vorgegebene Anzahl, aber nicht einschließlich der Zahl. So geben wir die tatsächliche Anzahl + 1.

Anmerkung 3: Es gibt einen kleinen Unterschied in der Funktionalität von range in Python 2 und 3. Sie mehr darüber in this answer lesen können.

2

Mit Python eingebaute Funktion range:

Python 2

input = 8 
output = range(input + 1) 

print output 
[0, 1, 2, 3, 4, 5, 6, 7, 8] 

Python 3

input = 8 
output = list(range(input + 1)) 

print(output) 
[0, 1, 2, 3, 4, 5, 6, 7, 8] 
+0

Das ist falsch. Python 3 gibt keine Liste zurück. – thefourtheye

+0

Auch nach der Bearbeitung ist es immer noch falsch. 'print' ist eine Funktion in Python 3.x. – thefourtheye

1

Nur du ein anderes Beispiel zu geben, obwohl Bereich (Wert) bei weitem der beste Weg, dies zu tun, könnte Ihnen später etwas anderes helfen.

list = [] 
calc = 0 

while int(calc) < 9: 
    list.append(calc) 
    calc = int(calc) + 1 

print list 
[0, 1, 2, 3, 4, 5, 6, 7, 8] 
0

Je nachdem, wie Sie das Ergebnis wollen, können Sie auch jede Zahl in einer for-Schleife drucken:

def numbers(): 
    for i in range(int(input('How far do you wanna go? '))+1): 
     print(i) 

Also, wenn die Benutzereingabe war 7 zum Beispiel:

How far do you wanna go? 7 
0 
1 
2 
3 
4 
5 
6 
7 

Sie können auch die '+1' in der for-Schleife löschen und auf die print-Anweisung setzen, die sie auf 1 statt 0 setzt.

Verwandte Themen