Wie kann ich eine Liste mit fortlaufenden Nummern erstellen?

Antworten:

126

In Python 3 können Sie die integrierte rangeFunktion wie folgt verwenden

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

Hinweis 1: Die rangeFunktion von Python 3.x gibt ein rangeObjekt zurück. Wenn Sie eine Liste möchten, müssen Sie diese explizit in eine Liste konvertieren, mit der listFunktion, wie ich sie in der Antwort gezeigt habe.

Anmerkung 2: Wir übergeben die Nummer 9 an die rangeFunktion, da die rangeFunktion Zahlen bis zur angegebenen Nummer generiert, die Nummer jedoch nicht enthält. Also geben wir die tatsächliche Zahl + 1 an.

Hinweis 3: Es gibt einen kleinen Unterschied in der Funktionalität von rangePython 2 und 3. Weitere Informationen hierzu finden Sie in dieser Antwort .

thefourtheye
quelle
11

Verwenden der in Python integrierten Bereichsfunktion:

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]
ds_chem
quelle
3

Nur um Ihnen ein weiteres Beispiel zu geben: Obwohl Bereich (Wert) bei weitem der beste Weg ist, dies zu tun, könnte dies Ihnen später bei etwas anderem 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]
jester112358
quelle
Warum werfen Sie calczu , intjedes Mal?
Nagabhushan SN
1

Hinweis: - Natürlich müssen Sie in Python-3x die Range-Funktion verwenden. Sie funktioniert, um bei Bedarf Zahlen zu generieren. Die Standardmethode zur Verwendung der Range-Funktion zum Erstellen einer Liste aufeinanderfolgender Zahlen ist

x=list(range(10))
#"list"_will_make_all_numbers_generated_by_range_in_a_list
#number_in_range_(10)_is_an_option_you_can_change_as_you_want
print (x)
#Output_is_ [0,1,2,3,4,5,6,7,8,9]

Wenn Sie eine Funktion zum Generieren einer Liste fortlaufender Zahlen mithilfe der Range-Funktion erstellen möchten, beachten Sie diesen Code!

def  consecutive_numbers(n) :
    list=[i for i in range(n)]
    return (list)
print(consecutive_numbers(10))

Viel Glück!

Diyar T Alzuhairi
quelle
0

Je nachdem, wie Sie das Ergebnis erzielen möchten, 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)

Wenn die Benutzereingabe beispielsweise 7 war:

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

Sie können das '+1' auch in der for-Schleife löschen und in die print-Anweisung einfügen, wodurch es auf 1 anstelle von 0 geändert wird.

CannedScientist
quelle
0

Sie können Listenverständnisse für dieses Problem verwenden, da es nur in zwei Zeilen gelöst wird. Code-

n = int(input("Enter the range of the list:\n"))
l1 = [i for i in range(n)] #Creates list of numbers in the range 0 to n
if __name__ == "__main__":
    print(l1)

Vielen Dank.

Tanish Sarmah
quelle