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))
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))
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