web-dev-qa-db-fra.com

Comment ajouter un entier à chaque élément d'une liste?

Si j'ai list=[1,2,3] et que je veux ajouter 1 à chaque élément pour obtenir le résultat [2,3,4],

Je suppose que j'utiliserais une boucle for mais je ne sais pas exactement comment.

86
user1212818
new_list = [x+1 for x in my_list]
104
Ned Batchelder
>>> mylist = [1,2,3]
>>> [x+1 for x in mylist]
[2, 3, 4]
>>>

liste-compréhensions python .

20
RanRag

Les autres réponses sur la compréhension de liste sont probablement le meilleur choix pour une addition simple, mais si vous avez une fonction plus complexe que vous devez appliquer à tous les éléments, alors map peut être un bon ajustement.

Dans votre exemple, ce serait:

>>> map(lambda x:x+1, [1,2,3])
[2,3,4]
15
Andrew Cox

si vous voulez utiliser numpy il existe une autre méthode comme suit

import numpy as np
list1 = [1,2,3]
list1 = list(np.asarray(list1) + 1)
11
sushmit
>>> [x.__add__(1) for x in [1, 3, 5]]
3: [2, 4, 6]

Mon intention ici est d'exposer si l'élément de la liste est un entier, il prend en charge diverses fonctions intégrées. 

10
Kracekumar

Premièrement, n'utilisez pas la liste de mots pour votre variable. Il ombrage le mot clé list.

La meilleure façon de le faire est d'utiliser l'épissage, notez que [:] dénote une épissure:

>>> _list=[1,2,3]
>>> _list[:]=[i+1 for i in _list]
>>> _list
[2, 3, 4]
5
robert king

Python 2+:

>>> mylist = [1,2,3]
>>> map(lambda x: x + 1, mylist)
[2, 3, 4]

Python 3+:

>>> mylist = [1,2,3]
>>> list(map(lambda x: x + 1, mylist))
[2, 3, 4]
4
satomacoto

Nous sommes tombés sur une façon pas si efficace mais unique de le faire. Alors, partagez-le. Et oui, il faut de l'espace supplémentaire pour une autre liste.

test_list1 = [4, 5, 6, 2, 10]
test_list2 = [1] * len(test_list1)

res_list = list(map(add, test_list1, test_list2))

print(test_list1)
print(test_list2)
print(res_list)

#### Output ####
[4, 5, 6, 2, 10]
[1, 1, 1, 1, 1]
[5, 6, 7, 3, 11]
0
Preetham
list = [1,2,3,4,5]

for index in range(5):
      list[index] = list[index] +1

print(list)
0
Munchjax