Если у меня есть list=[1,2,3]
, и я хочу добавить 1
к каждому элементу, чтобы получить вывод [2,3,4]
,
как бы я это сделал?
Я предполагаю, что я бы использовал цикл for, но точно не знаю, как именно.
Если у меня есть list=[1,2,3]
, и я хочу добавить 1
к каждому элементу, чтобы получить вывод [2,3,4]
,
как бы я это сделал?
Я предполагаю, что я бы использовал цикл for, но точно не знаю, как именно.
new_list = [x+1 for x in my_list]
>>> mylist = [1,2,3]
>>> [x+1 for x in mylist]
[2, 3, 4]
>>>
Другие ответы на понимание списка, вероятно, являются наилучшим выбором для простого добавления, но если у вас есть более сложная функция, которую вам нужно применить ко всем элементам, тогда map может быть хорошим.
В вашем примере это будет:
>>> map(lambda x:x+1, [1,2,3])
[2,3,4]
если вы хотите использовать numpy, существует следующий метод
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]
Мое намерение состоит в том, чтобы разоблачить, является ли элемент в списке целым, поддерживающим различные встроенные функции.
Во-первых, не используйте слово "список" для вашей переменной. Он затеняет ключевое слово list
.
Лучший способ сделать это на месте с помощью сплайсинга, обратите внимание, что [:]
обозначает сплайсинг:
>>> _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]
list = [1,2,3,4,5]
for index in range(5):
list[index] = list[index] +1
print(list)
Наткнулся на не очень эффективный, но уникальный способ сделать это. Так что делитесь этим между собой. И да, это требует дополнительного места для другого списка.
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]