#python-3.x
#python-3.x
Вопрос:
У меня есть два списка L1
и L2
:
L1 = [2,3,4,5,6,7,8,9]
L2 = [1,2]
Я хочу составить список L3
из L1
и L2
:
L3 = [3,5,4,5,6,7,8,9]
Я создал функцию, но она не будет работать:
def mapp():
for i in range(len(L1)):
try:
L3.append(L2[i] L1[i])
except:
L3.append(L1[i])
return L3'
Комментарии:
1. Добро пожаловать в stackoverflow, не могли бы вы отредактировать свой вопрос, чтобы исправить форматирование, пожалуйста?
2. Можете ли вы объяснить, почему ваша функция не работает? Я отредактировал вопрос настолько, насколько смог разобрать, но в настоящее время он, похоже, работает, предполагая, что
L1
список длиннее. Большая проблема в том, что ваши списки являются глобальными.3. Мне было любопытно узнать о вашем ответе, я переписал код, и он работает хорошо.. я могу использовать if else для другого списка len, не только L1 длиннее, но и L2, спасибо..
Ответ №1:
Если я правильно понимаю, вы хотите взять два списка (L1 и L2) и суммировать элементы с соответствующим индексом . Вы можете сделать это таким образом :
def mapp(L1,L2):
#we make sure the first list is always the longest
if len(L1)<len(L2):
L1,L2 = L2,L1
#we copy the longest list
L3=L1.copy()
#we add the short list elements to the long list elements
for i,n in enumerate(L2):
L3[i] =n
return L3
print(mapp(L1=[2,3,4,5,6,7,8,9],L2=[1,2]))
Вывод : [3, 5, 4, 5, 6, 7, 8, 9]