Skip to content

Instantly share code, notes, and snippets.

@luizomf
Created February 11, 2020 04:46
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save luizomf/daa038e6b02d8cba125d87a28e66ec8b to your computer and use it in GitHub Desktop.
Save luizomf/daa038e6b02d8cba125d87a28e66ec8b to your computer and use it in GitHub Desktop.
"""
Considerando duas listas de inteiros ou floats (lista A e lista B)
Some os valores nas listas retornando uma nova lista com os valores somados:
Se uma lista for maior que a outra, a soma só vai considerar o tamanho da
menor.
Exemplo:
lista_a = [1, 2, 3, 4, 5, 6, 7]
lista_b = [1, 2, 3, 4]
=================== resultado
lista_soma = [2, 4, 6, 8]
"""
lista_a = [10, 2, 3, 40, 5, 6, 7]
lista_b = [1, 2, 3, 4]
lista_soma = [x + y for x, y in zip(lista_a, lista_b)]
print(lista_soma)
# lista_soma = []
# for i in range(len(lista_b)):
# lista_soma.append(lista_a[i] + lista_b[i])
# print(lista_soma)
# lista_soma = []
# for i, _ in enumerate(lista_b):
# lista_soma.append(lista_a[i] + lista_b[i])
# print(lista_soma)
@rngrafael
Copy link

l1 = [1, 2, 3, 4, 5, 6, 7, 8]

l2 = [1, 2, 3, 4, 5]

l3 = []

for i in range(len(l1)):
for j in range(len(l2)):
if i == j:
l3.append(l1[i]+l2[j])

print(l3)

@Diego-k2
Copy link

Diego-k2 commented Feb 3, 2022

lista_a = [1, 25, 3, 40, 5, 6, 7]
lista_b = [1, 2, 3, 4]
lista_a = iter(lista_a)
lista_soma = []

for som in lista_b:
lista_soma.append(som + lista_a.next())

print(lista_soma)

@alexmastbr
Copy link

Exercício da Aula 75 - Somando duas listas

import random # necessário para utilizar o módulo random

lista_A = random.sample(range(10), k=10)
lista_B = random.sample(range(10), k=5)
listas = list(zip(lista_A, lista_B))
print(listas)

for num_lista_A, num_lista_B in listas:
soma = num_lista_A + num_lista_B
print(soma)

@jonndevelop
Copy link

jonndevelop commented Sep 16, 2022

from itertools import zip_longest

lista_a = [1, 2, 3, 4, 5, 6, 7]
lista_b = [1, 2, 3, 4]

a_b = list(zip(lista_a, lista_b))

list_sum = [sum(v) for v in a_b]
print(list_sum)

@pedroviniciusn
Copy link

pedroviniciusn commented Oct 19, 2022

lista_a = [1, 2, 3, 4, 5, 6, 7]
lista_b = [1, 2, 3, 4]

def somar_listas():
lista_c = zip(lista_a, lista_b)
soma = []
for x, y in list(lista_c):
soma.append(x + y)
return soma

print(somar_listas())

@KayqueRhaniel
Copy link

KayqueRhaniel commented Apr 1, 2023

`lista_a = [1, 2, 3, 4, 5, 6, 7]
lista_b = [1, 2, 3, 4]

lista_soma = [i[0] + i[1] for i in zip(lista_a, lista_b)]
print(lista_soma)
`

@lucasbm03
Copy link

lista_a = [2, 4, 8, 16, 32]
lista_b = [2, 4, 8, 16]
lista_c = []

limite_lista = list(zip(lista_a, lista_b))
for i in limite_lista:
soma = sum(i)
lista_c.append(soma)
print(lista_c)

Copy link

ghost commented Jun 27, 2023

Ficou complexo assim pois quis usar closure e list comprehension.

def soma_listas(lista_maior):
def soma(lista_menor):
l3 = list(zip(lista_maior, lista_menor))
l4 = [
x + y
for x, y in l3
]
return l4
return soma

lista_maior = soma_listas([1, 3, 5, 7, 9, 11, 13])
print(lista_maior([2, 4, 6, 8]))

@imcarlosjorge
Copy link

Fiz pra treinar sobre decorators

lista_a     = [1, 2, 3, 4, 5, 6, 7, 1, 22]
lista_b     = [1, 2, 3, 4, 10, 11, 99, 0, 17, 8]

def decorator(func):
    def inner(*args):
        result = func(*args)
        return result
    return inner

#@decorator
def new_list(*args):
    size = min(len(args[0]), len(args[1]))
    return [
        args[0][sz] + args[1][sz]
        for sz in range(size)
    ]

# funciona passando pelo decorator comentado ou não, dá no mesmo
lista_soma = new_list(lista_a, lista_b)
print(f"Lista Soma: {lista_soma}")

# passando diretamente o decorator 
lista_soma2 = decorator(new_list)
print(f"Lista Soma 2: {lista_soma2(lista_a, lista_b)}")

@diogoiron7
Copy link

#fui ver a resposta e achei incrível que cada pessoa teve uma forma de responder diferente e nenhuma foi igual :O. É isso ai, vamo que vamo galera!!!

lista_a = [1,2,3,4,5,6,7]
lista_b = [1,2,3,4]
lista_soma = []

def somar_lista(list1, list2):
for i in range(len(list1)):
lista_soma.append(list1[i] + list2[i])
print(lista_soma)

if len(lista_a) > len(lista_b):
print('lista A é maior!')
somar_lista(lista_b, lista_a)
else:
print('lista B é maior!')
somar_lista(lista_a, lista_b)

@Kyonyuu
Copy link

Kyonyuu commented Nov 29, 2023

from itertools import zip_longest

lista_a = [10, 2, 3, 40, 5, 6, 7]
lista_b = [1, 2, 3, 4]
list_some = [x + y for x, y in zip_longest(lista_a, lista_b, fillvalue= 0)]
print(list_some)

Eu já vi a resposta antes, mas como modo de mostrar que eu aprendi msm eu decidi usar a conta de ambos as listas...

@Biel-Amorim
Copy link

lista_a = [1, 2, 3, 4, 5, 6, 7]
lista_b = [1, 2, 3, 4]

def sum_list(l1, l2):
interval = min(len(l1), len(l2))
return [(l1[i] + l2[i]) for i in range(interval)]

v1 = sum_list(lista_a, lista_b)
print(v1)

@alfanascimento
Copy link

alfanascimento commented Feb 1, 2024

lista_a     = [1, 2, 3, 4, 5, 6, 7]
lista_b     = [1, 2, 3, 4]

def sum_operation():
    def inner(la , lb):
        interval = min(len(la),len(lb))       
        result = []
        for i in range(interval):            
            result.append(la[i]+lb[i])
        return result
            
    return inner

soma = sum_operation()

print(soma(lista_a,lista_b))

#-------------------------------------------------------------------------------------------

la     = [1, 2, 3, 4, 5, 6, 7]
lb     = [1, 2, 3, 4]

for i in zip(la,lb):
    x, y = i
    print(f'Resultado da soma {x} + {y} é: {x + y}')

Resultados:
[2, 4, 6, 8]

Resultado da soma 1 + 1 é: 2
Resultado da soma 2 + 2 é: 4
Resultado da soma 3 + 3 é: 6
Resultado da soma 4 + 4 é: 8

@monte019
Copy link

def soma(lista_a, lista_b):
intervalo_max = min(len(lista_a), len(lista_b))
return [
(lista_a[indice] + lista_b[indice])
for indice in range(intervalo_max)

]

lista_a = [1, 2, 3, 4, 5, 6, 7]
lista_b = [1, 2, 3, 4]

lista_soma = soma(lista_a, lista_b)
print(lista_soma)

result = print(f'O resultado final eh: {lista_soma}')

@mariodac
Copy link

mariodac commented Mar 26, 2024

lista_a = [1, 2, 3, 4, 5, 6, 7]
lista_b = [1, 2, 3, 4]
lista_soma = []

range_min = 1
if len(lista_a) > len(lista_b):
    range_min = len(lista_b)
else:
    range_min = len(lista_a)
for i in range(range_min):
    lista_soma.append(lista_a[i] + lista_b[i])
print(lista_soma)

@TiagoLealFarias
Copy link

lista_a = [10, 2, 3, 40, 5, 6, 7]
lista_b = [1, 2, 3, 4]

tamanhoListaA = len(lista_a)
tamanhoListaB = len(lista_b)
menorLista = 0
if tamanhoListaA < tamanhoListaB:
menorLista = tamanhoListaA
else:
menorLista = tamanhoListaB

lista_c = []
i = 0

for numero in range(menorLista):
numero_nova_lista = lista_a[i]+ lista_b[i]
lista_c.append(numero_nova_lista)
i += 1

print(lista_c)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment