Python: adición de elementos diagonales entre listas

A veces, mientras trabajamos con listas de Python, podemos tener un problema en el que necesitamos realizar la adición de listas en forma diagonal, es decir, agregar un elemento de 1 lista a un elemento i + 1 de otra lista. Este tipo de problema puede tener aplicación en la programación día a día. Analicemos ciertas formas en que se puede realizar esta tarea.

Método n.º 1: Usar bucle
Esta es una forma de fuerza bruta en la que se puede realizar esta tarea. En esto, iteramos una lista y probamos agregar el elemento i + 1th de otra lista y construir la lista resultante.

# Python3 code to demonstrate 
# Diagonal element addition among lists
# using loop
  
# Initializing lists
test_list1 = [1, 6, 8, 5, 3]
test_list2 = [8, 10, 3, 4, 5]
  
# printing original lists
print("The original list 1 is : " + str(test_list1))
print("The original list 2 is : " + str(test_list2))
  
# Diagonal element addition among lists
# using loop
res = []
for idx in range(0, len(test_list1) - 1):
    res.append(test_list1[idx] + test_list2[idx + 1])
  
# printing result 
print ("List after diagonal addition : " + str(res))
Producción :

The original list 1 is : [1, 6, 8, 5, 3]
The original list 2 is : [8, 10, 3, 4, 5]
List after diagonal addition : [11, 9, 12, 10]

Método #2: Uso zip() de la comprensión de listas +
Esta es otra forma en la que se puede realizar esta tarea. En esto, agrupamos i-ésimo con i+1-ésimo elemento de otra lista usando zip(). La tarea de realizar la suma se realiza en comprensión de listas.

# Python3 code to demonstrate 
# Diagonal element addition among lists
# using zip() + list comprehension
  
# Initializing lists
test_list1 = [1, 6, 8, 5, 3]
test_list2 = [8, 10, 3, 4, 5]
  
# printing original lists
print("The original list 1 is : " + str(test_list1))
print("The original list 2 is : " + str(test_list2))
  
# Diagonal element addition among lists
# using zip() + list comprehension
res = [i + j for i, j in zip(test_list1, test_list2[1:])]
  
# printing result 
print ("List after diagonal addition : " + str(res))
Producción :

The original list 1 is : [1, 6, 8, 5, 3]
The original list 2 is : [8, 10, 3, 4, 5]
List after diagonal addition : [11, 9, 12, 10]

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *