Comment ajouter un entier à chaque élément dans une liste?
Si j'ai list=[1,2,3]
et je tiens à ajouter 1
à chaque élément pour obtenir la sortie [2,3,4]
,
comment dois-je procéder?
Je suppose que je utiliser une boucle for mais vous ne savez pas exactement comment.
Vous devez vous connecter pour publier un commentaire.
for e in lst: e += 1
travail?lst = [1, 2, 3]; e = lst[0]; e += 1
.e
ne dispose d'aucune information sur l'endroit où il est venu, c'est juste une variable à laquelle un élément d'une liste ont été assignés. Après l'affectation de quelque chose d'autre à lui, la listelst
ne changera pas.new_list = (x+1 for x in my_list)
for i,j in enumerate(list1): list1[i] += 1
œuvres. Je suis sûr que Eduardo paresseux générateur est la plus rapide (utilisationnext(list1)
à imprimer)liste des compréhensions python.
Les autres réponses sur la compréhension de liste sont probablement le meilleur pari pour une simple addition, mais si vous avez une fonction plus complexe qu'il fallait s'appliquer à tous les éléments, puis carte peut être un bon ajustement.
Dans votre exemple, il serait:
map(1 .__add__, ...)
travaille trop. Notez que vous avez besoin d'un espace entre1
et.
pour empêcher l'analyseur en pensant que c'est un floatsi vous souhaitez utiliser numpy il y a une autre méthode comme suit
Mon intention ici est d'exposer si l'élément de la liste est un entier il prend en charge plusieurs fonctions intégrées.
Tout d'abord de ne pas utiliser le mot "liste" de votre variable. Il suit le mot-clé
list
.La meilleure façon est de le faire à l'aide de l'épissage, note le
[:]
dénote une épissure:_list[:]=(i+1 for i in _list)
.Python 2+:
Python 3+:
Suis tombé sur un pas de manière efficace, mais unique façon de faire. Afin de les partager à travers.Et oui, il nécessite de l'espace supplémentaire pour une autre liste.