Jeśli mam i chcę dodać 1
do każdego elementu, aby uzyskać wyjście [2,3,4]
, jak to zrobić?Jak dodać liczbę całkowitą do każdego elementu na liście?
Zakładam, że użyłbym pętli for, ale nie jestem do końca pewien, w jaki sposób.
Jeśli mam i chcę dodać 1
do każdego elementu, aby uzyskać wyjście [2,3,4]
, jak to zrobić?Jak dodać liczbę całkowitą do każdego elementu na liście?
Zakładam, że użyłbym pętli for, ale nie jestem do końca pewien, w jaki sposób.
new_list = [x+1 for x in my_list]
>>> mylist = [1,2,3]
>>> [x+1 for x in mylist]
[2, 3, 4]
>>>
Pozostałe odpowiedzi na liście są prawdopodobnie najlepszym rozwiązaniem do prostego dodawania, ale jeśli masz bardziej złożoną funkcję, którą musisz zastosować do wszystkich elementów, to map może być dobrym rozwiązaniem.
W przykładzie będzie to:
>>> map(lambda x:x+1, [1,2,3])
[2,3,4]
'map (1 .__ add__, ...)' działa również. Zauważ, że potrzebujesz spacji między '1' a' .', aby zapobiec analizowaniu przez parser, że jest to float. –
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]
Po pierwsze nie używać słowa 'listy' dla twojej zmiennej. Cieniuje ono słowo kluczowe list
.
Najlepszym sposobem jest zrobienie go w miejscu przy użyciu forniru, zanotować [:]
oznacza splice:
>>> _list=[1,2,3]
>>> _list[:]=[i+1 for i in _list]
>>> _list
[2, 3, 4]
To jest dobre dla zmiany istniejącej listy, ale wciąż tworzy nową. Czy używanie generatora jest niebezpieczne, aby uniknąć tworzenia niepotrzebnych list? Tj. '_list [:] = (i + 1 dla i w _list)'. – Alan
@Alan dobry punkt - powinien użyć generatora –
>>> [x.__add__(1) for x in [1, 3, 5]]
3: [2, 4, 6]
Moją intencją jest, aby odsłonić jeśli pozycja na liście jest liczbą całkowitą obsługuje różne wbudowane funkcje.
Dobre przypomnienie dla nas zagubione w magii rozumienia listy. – npit
jeśli chcesz używać NumPy istnieje inna metoda następująco
import numpy as np
list1 = [1,2,3]
list1 = list(np.asarray(list1) + 1)
Dlaczego nie 'za ew lst: E + = 1 'działa? –
Ta wykłada wyjaśnia: Fakty i mity o nazwach i wartościach Pythona: http://nedbatchelder.com/text/names1.html –
√ Niesamowite informacje. Otwarcie oczu. –