объединить список и суммировать его в python

#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]