Hoe kan ik een lijst met opeenvolgende nummers genereren?

Stel als je een nummer had, voer 8in in python en je wilde een lijst met opeenvolgende nummers genereren tot 8zoals

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

Hoe kon je dit doen?


Antwoord 1, autoriteit 100%

In Python 3 kun je het ingebouwde rangefunctioneren als volgt

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

Opmerking 1:De range-functie van Python 3.x geeft een range-object terug. Als je een lijst wilt, moet je die expliciet converteren naar een lijst, met de listfunctioneert zoals ik heb laten zien in het antwoord.

Opmerking 2:We geven nummer 9 door aan de functie rangeomdat de functie rangenummers genereert tot het opgegeven nummer, maar het nummer niet meeneemt . Dus we geven het werkelijke aantal + 1.

Opmerking 3:Er is een klein verschil in functionaliteit van rangein Python 2 en 3. Je kunt daar meer over lezen in dit antwoord.


Antwoord 2, autoriteit 9%

De ingebouwde bereikfunctie van Python gebruiken:

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]

Antwoord 3, autoriteit 3%

Hier is een manier om n opeenvolgende getallen te genereren met gelijke intervallen ertussen, beginnend van 0 tot 100 met numpy:

import numpy as np
myList = np.linspace(0, 100, n)

Antwoord 4

Om je nog een voorbeeld te geven, hoewel bereik(waarde) verreweg de beste manier is om dit te doen, kan dit je later misschien helpen bij iets anders.

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]

Antwoord 5

Opmerking:-Zeker in python-3x moet je de Bereikfunctiegebruiken. Het werkt om nummers op aanvraag te genereren, standaardmethode om de Bereikfunctiete gebruiken sterk>om een ​​lijst met opeenvolgende nummers te maken is

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]

Ook als je een functiewilt maken om een ​​lijst van opeenvolgende nummers te genereren met behulp van de Bereikfunctielet dan op deze code!

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

Veel succes!


Antwoord 6

U kunt itertools.count()gebruiken om onbeperkte reeksen te genereren. (itertools bevindt zich in de standaardbibliotheek van Python). Documenten hier:
https://docs.python.org/3/library/itertools. html#itertools.count


Antwoord 7

Afhankelijk van hoe u het resultaat wilt, kunt u elk nummer ook in een for-lus afdrukken:

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

Dus als de gebruikersinvoer bijvoorbeeld 7 was:

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

Je kunt ook de ‘+1’ in de for-lus verwijderen en op het printstatement plaatsen, waardoor het begint bij 1 in plaats van 0.


Antwoord 8

Je kunt voor dit probleem lijstbegrippen gebruiken, omdat het in slechts twee regels wordt opgelost.

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
print(l1)

Other episodes