web-dev-qa-db-fra.com

Comment puis-je générer une liste de numéros consécutifs?

Dites si vous aviez une valeur numérique 8 en python et que vous vouliez générer une liste de nombres consécutifs jusqu’à 8 comme

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

Comment avez-vous pu faire cela?

40
yezi3

En Python 3, vous pouvez utiliser la fonction intégrée range comme ceci

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

Note 1: La fonction range de de Python 3.x renvoie un objet range. Si vous voulez une liste, vous devez la convertir explicitement en liste, avec la fonction list comme je l’ai montré dans la réponse.

Note 2: Nous passons le numéro 9 à la fonction range car, la fonction range générera des nombres jusqu'au nombre donné, mais n'incluant pas le nombre. Donc, nous donnons le nombre réel + 1.

Note 3: Il existe une petite différence dans les fonctionnalités de range en Python 2 et 3. Vous pouvez en savoir plus à ce sujet dans cette réponse .

75
thefourtheye

Utilisation de la fonction de plage intégrée de Python:

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]
4
ds_chem

Juste pour vous donner un autre exemple, bien que range (value) soit de loin le meilleur moyen de le faire, cela pourrait vous aider ultérieurement.

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]
2
jester112358

Selon le résultat souhaité, vous pouvez également imprimer chaque nombre dans une boucle for:

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

Donc, si l'entrée utilisateur était 7, par exemple:

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

Vous pouvez également supprimer le '+1' dans la boucle for et le placer sur l'instruction print, ce qui le changera en commençant à 1 au lieu de 0. 

0
Ryan Papetti

Remarque: - En python-3x, vous devez certainement utiliser Fonction de plage Il fonctionne pour générer des nombres à la demande, méthode standard d'utilisation Fonction de plage pour créer une liste de nombres consécutifs 

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]

Aussi, si vous voulez créer une fonction pour générer une liste de nombres consécutifs à l’aide de Fonction de plage regardez ce code! 

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

Bonne chance! 

0