Wenn ich list=[1,2,3]
habe und 1
zu jedem Element hinzufügen möchte, um die Ausgabe [2,3,4]
, Zu erhalten, wie würde ich das tun?
Ich gehe davon aus, dass ich eine for-Schleife verwenden würde, aber nicht genau weiß, wie.
new_list = [x+1 for x in my_list]
>>> mylist = [1,2,3]
>>> [x+1 for x in mylist]
[2, 3, 4]
>>>
Die anderen Antworten zum Listenverständnis sind wahrscheinlich die beste Wahl für die einfache Addition. Wenn Sie jedoch eine komplexere Funktion haben, die Sie auf alle Elemente anwenden müssen, ist map eine gute Wahl.
In Ihrem Beispiel wäre das:
>>> map(lambda x:x+1, [1,2,3])
[2,3,4]
wenn Sie numpy verwenden möchten, gibt es eine andere Methode wie folgt
import numpy as np
list1 = [1,2,3]
list1 = list(np.asarray(list1) + 1)
>>> [x.__add__(1) for x in [1, 3, 5]]
3: [2, 4, 6]
Ich beabsichtige hier zu zeigen, ob das Element in der Liste eine Ganzzahl ist, die verschiedene integrierte Funktionen unterstützt.
Verwenden Sie zunächst nicht die Word-Liste für Ihre Variable. Es wird das Schlüsselwort list
angezeigt.
Am besten tun Sie dies mit Splicing. Beachten Sie, dass [:]
einen Splice bezeichnet:
>>> _list=[1,2,3]
>>> _list[:]=[i+1 for i in _list]
>>> _list
[2, 3, 4]
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]
Kam über eine nicht so effiziente, aber einzigartige Art und Weise, es zu tun. Teilen Sie es also über. Und ja, es benötigt zusätzlichen Speicherplatz für eine andere 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]
list = [1,2,3,4,5]
for index in range(5):
list[index] = list[index] +1
print(list)