Как добавить целое число к каждому элементу в списке? - PullRequest
100 голосов
/ 16 февраля 2012

Если у меня есть list=[1,2,3] и я хочу добавить 1 к каждому элементу, чтобы получить вывод [2,3,4], как бы я это сделал?

Полагаю, я бы использовал цикл for, но не уверен, как именно.

Ответы [ 9 ]

116 голосов
/ 16 февраля 2012
new_list = [x+1 for x in my_list]
24 голосов
/ 16 февраля 2012
>>> mylist = [1,2,3]
>>> [x+1 for x in mylist]
[2, 3, 4]
>>>

список-понимание Python .

20 голосов
/ 16 февраля 2012

Другие ответы на понимание списка, вероятно, являются лучшим выбором для простого сложения, но если у вас есть более сложная функция, которую вам нужно применить ко всем элементам, тогда map может подойти.

В вашем примере это будет:

>>> map(lambda x:x+1, [1,2,3])
[2,3,4]
12 голосов
/ 14 декабря 2016

, если вы хотите использовать numpy, есть другой способ, описанный ниже

import numpy as np
list1 = [1,2,3]
list1 = list(np.asarray(list1) + 1)
9 голосов
/ 16 февраля 2012
>>> [x.__add__(1) for x in [1, 3, 5]]
3: [2, 4, 6]

Мое намерение здесь состоит в том, чтобы показать, является ли элемент в списке целым числом, он поддерживает различные встроенные функции.

6 голосов
/ 16 февраля 2012

Во-первых, не используйте слово «список» для вашей переменной.Он затеняет ключевое слово list.

. Лучший способ - сделать это на месте с помощью сплайсинга, обратите внимание, что [:] обозначает сплайсинг:

>>> _list=[1,2,3]
>>> _list[:]=[i+1 for i in _list]
>>> _list
[2, 3, 4]
5 голосов
/ 16 февраля 2012

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]
0 голосов
/ 27 апреля 2019

Наткнулся не на столь эффективный, но уникальный способ сделать это.Так что делитесь этим между собой. И да, для дополнительного списка требуется дополнительное место.

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 голосов
/ 17 декабря 2018
list = [1,2,3,4,5]

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

print(list)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...