Comment créer une liste avec des valeurs comprises entre deux valeurs que j'ai saisies? Par exemple, la liste suivante est générée pour les valeurs de 11 à 16:
list = [11, 12, 13, 14, 15, 16]
Utilisez range
. Dans Python 2.x, il retourne une liste donc tout ce dont vous avez besoin est:
>>> range(11, 17)
[11, 12, 13, 14, 15, 16]
En Python 3.x range
est un itérateur. Donc, vous devez le convertir en liste:
>>> list(range(11, 17))
[11, 12, 13, 14, 15, 16]
Remarque : Le deuxième numéro est exclusif. Donc, ici, il doit être 16+1
=17
ÉDITER:
Pour répondre à la question de l'incrémentation de 0.5
, l'option la plus simple serait probablement d'utiliser numpy's arange()
et .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
paramètre mais c'est toujours un int - pas un flottant. Vous ne pouvez pas faire cela exactement dans la bibliothèque standard.Vous semblez chercher
range()
:Pour incrémenter de
0.5
au lieu de1
, dites:la source
list
comme variable.list
est une classe intégrée, donc son utilisation en tant que variable est quelque peu déconseilléeEssayer:
Il s'agit d'une liste en Python 2.x et se comporte principalement comme une liste en Python 3.x. Si vous exécutez Python 3 et avez besoin d'une liste que vous pouvez modifier, utilisez:
la source
Si vous recherchez une fonction de type plage qui fonctionne pour le type flottant, voici un très bon article .
Production:
la source
Utilisez la compréhension de liste en python. Puisque vous voulez aussi 16 dans la liste. Utilisez x2 + 1. La fonction de plage exclut la limite supérieure de la fonction.
la source
range()
pas besoin d'utiliser une liste de compréhensionlist(range(x1, x2+1))
.en supposant que vous vouliez avoir une plage entre x à y
utiliser la liste pour le support 3.x
la source
En python, vous pouvez le faire très facilement
ou vous pouvez créer une fonction récursive qui renvoie un tableau jusqu'à un nombre donné:
sortie: ar = [10,9,8,7,6,5,4,3,2,1,0]
la source
La façon la plus élégante de le faire est d'utiliser la
range
fonction, mais si vous souhaitez recréer cette logique, vous pouvez faire quelque chose comme ceci:Cela produit la sortie:
Comme indiqué précédemment par @Jared, la meilleure façon est d'utiliser le
range
ounumpy.arrange
je trouve le code intéressant à partager.la source
[x for x in range(10, 3, 1)]
- le premier argument est le début, le second la fin et le dernier l'étape. ==> stop> startChaque réponse ci-dessus suppose que la plage est uniquement composée de nombres positifs. Voici la solution pour retourner une liste de nombres consécutifs où les arguments peuvent être quelconques (positifs ou négatifs), avec la possibilité de définir une valeur de pas facultative (par défaut = 1).
Par exemple, la commande standard
list(range(1,-3))
renvoie une liste vide[]
, tandis que cette fonction renvoie[-3,-2,-1,0,1]
Mis à jour : maintenant l'étape peut être négative. Merci @Michael pour son commentaire.
la source
i_min = -3, i_max = 1
any_number_range(i_max, i_min))
retour[-3,-2,-1,0,1]
Mais, la fonction intégréelist(range(i_min, i_max + 1))
renverra les mêmes valeurs.list(range(1,-3, -1))