Python - Función Zip

#10 ejemplos utilizando la función Zip en Python: #1. Combinar dos listas en una lista de tuplas: a = [1, 2, 3] b = ['a', 'b', 'c'] c = list(zip(a, b)) print(c) # [(1, 'a'), (2, 'b'), (3, 'c')] #2. Combinar dos listas en un diccionario: a = [1, 2, 3] b = ['a', 'b', 'c'] c = dict(zip(a, b)) print(c) # {1: 'a', 2: 'b', 3: 'c'} #3. Combinar tres listas en una lista de tuplas: a = [1, 2, 3] b = ['a', 'b', 'c'] c = [True, False, True] d = list(zip(a, b, c)) print(d) # [(1, 'a', True), (2, 'b', False), (3, 'c', True)] #4. Combinar dos listas de diferentes longitudes: a = [1, 2, 3] b = ['a', 'b'] c = list(zip(a, b)) print(c) # [(1, 'a'), (2, 'b')] #5. Combinar dos listas y aplicar una función #a cada par de elementos: a = [1, 2, 3] b = [4, 5, 6] c = [sum(pair) for pair in zip(a, b)] print(c) # [5, 7, 9] #6. Combinar dos listas y aplicar una función #a cada par de elementos con argumentos adicionales: a = [1, 2, 3] b = [4, 5, 6] c = [pow(pair[0], pair[1]) for pair in zip(a, b)] print(c) # [1, 32, 729] #7. Combinar dos listas y filtrar los pares de elementos #que cumplen una condición: a = [1, 2, 3] b = [4, 5, 6] c = [pair for pair in zip(a, b) if sum(pair) > 5] print(c) # [(2, 5), (3, 6)] #8. Combinar dos listas y filtrar los pares de elementos #que cumplen una condición con una función: a = [1, 2, 3] b = [4, 5, 6] c = [pair for pair in zip(a, b) if pow(pair[0], pair[1]) > 10] print(c) # [(2, 4)] #9. Combinar dos listas y aplicar una función #a cada par de elementos con una condición: a = [1, 2, 3] b = [4, 5, 6] c = [sum(pair) if sum(pair) > 5 else 0 for pair in zip(a, b)] print(c) # [0, 7, 9] #10. Combinar dos listas y aplicar una función a cada par de elementos #con una condición utilizando una función lambda: a = [1, 2, 3] b = [4, 5, 6] c = [(lambda x, y: sum((x, y)) if sum((x, y)) > 5 else 0)(*pair) for pair in zip(a, b)] print(c) # [0, 7, 9] ########################################################## #4 ejemplos utilizando la función zip_longest en Python: #1. Combinar dos listas de diferentes longitudes #con un valor predeterminado: from itertools import zip_longest a = [1, 2, 3] b = ['a', 'b'] c = list(zip_longest(a, b, fillvalue=0)) print(c) # [(1, 'a'), (2, 'b'), (3, 0)] #2. Combinar dos listas y aplicar una función a cada par de elementos # con argumentos adicionales y un valor predeterminado: from itertools import zip_longest a = [1, 2, 3] b = [4, 5] c = [pow(pair[0], pair[1], 1) for pair in zip_longest(a, b, fillvalue=0)] print(c) # [1, 32, 1] #3. Combinar dos listas y aplicar una función #a cada par de elementos con una condición y un valor predeterminado: from itertools import zip_longest a = [1, 2, 3] b = [4, 5] c = [pow(pair[0], pair[1], 1) if pair[1] != 0 else 0 for pair in zip_longest(a, b, fillvalue=0)] print(c) # [1, 32, 1] #4. Combinar dos listas y aplicar una función a cada par de elementos #con una condición y un valor predeterminado utilizando una función lambda: from itertools import zip_longest a = [1, 2, 3] b = [4, 5] c = [(lambda x, y: pow(x, y, 1) if y != 0 else 0)(*pair) for pair in zip_longest(a, b, fillvalue=0)] print(c) # [1, 32, 1]