Crear una lista de tuplas a partir de múltiples listas y tuplas en Python
- Crear manualmente una lista de tuplas a partir de múltiples listas y tuplas en Python
-
Crear una lista de tuplas a partir de varias listas y tuplas con el método
zip()
en Python
Cuando trabajamos con varias listas y tuplas, a menudo tenemos que combinar los valores presentes dentro de los objetos. Este enfoque hace que la iteración sobre ellos sea mucho más simple. Al desarrollar aplicaciones web o API con Python, este enfoque se sigue principalmente para garantizar que no falte ningún valor. Además, se vuelve muy iterar sobre estos valores dentro de las plantillas HTML.
En este artículo, aprenderemos cómo crear una lista de tuplas y tuplas a partir de varias listas en Python.
Crear manualmente una lista de tuplas a partir de múltiples listas y tuplas en Python
El enfoque más básico para crear una lista de tuplas a partir de varias listas y tuplas es escribir una función auxiliar o de utilidad usted mismo. La función aceptaría varias listas y tuplas y devolvería una lista de tuplas. Al iterar sobre las listas, la lógica debería garantizar que solo considere la longitud más pequeña en todas las listas y agregue elementos solo hasta ese índice. El siguiente código de Python implementa el enfoque discutido.
def convert(*args):
"""
Returns a list of tuples generated from multiple lists and tuples
"""
for x in args:
if not isinstance(x, list) and not isinstance(x, tuple):
return []
size = float("inf")
for x in args:
size = min(size, len(x))
result = []
for i in range(size):
result.append(tuple([x[i] for x in args]))
return result
a = [1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8]
b = ["H", "E", "L", "L", "O"]
c = [True, False, False, True, True, True]
d = [100, 200, 300, 400]
result = convert(a, b, c, d)
print(result)
Producción :
[(1.1, 'H', True, 100), (2.2, 'E', False, 200), (3.3, 'L', False, 300), (4.4, 'L', True, 400)]
La función convert()
acepta múltiples listas y tuplas como argumentos. Primero, comprueba si cada argumento pasado es una instancia de lista
o tupla
. Si no, devuelve una lista vacía. A continuación, encuentra la longitud más pequeña, digamos n
, en todas las listas y tuplas. Esta operación asegura que no nos topemos con la excepción IndexError
.
Una vez que se encuentra el tamaño más pequeño, la función convert()
crea una lista vacía e itera sobre todos los argumentos n
veces. Cada iteración crea una tupla y la agrega a la lista vacía creada antes. Una vez que se completa la iteración, la lista de tuplas se devuelve como respuesta.
Considerando el número de argumentos como n
y la longitud más pequeña como m
, la complejidad temporal de la función anterior es O(m * n)
, y la complejidad espacial también es O(m * n)
. La complejidad del tiempo es O(m * n)
debido al bucle doble anidado for
que crea el resultado.
Crear una lista de tuplas a partir de varias listas y tuplas con el método zip()
en Python
La función zip()
es la función de utilidad integrada de Python. Acepta múltiples objetos iterables como listas y tuplas y devuelve un objeto iterable. Este objeto zip
almacena elementos como una lista de tuplas. Implementar la función zip()
sería similar, no exacto, a la función convert()
que implementamos en la última sección.
El valor devuelto por la función zip()
es un objeto zip
iterable. Si lo imprimiéramos, la salida sería similar a la siguiente.
<zip object at 0x7fee6d0628c0>
Ahora que hemos terminado con la teoría, comprendamos cómo usar el método zip()
para nuestro caso de uso. Consulte el siguiente código para lo mismo.
a = [1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8]
b = ("H", "E", "L", "L", "O")
c = [True, False, False, True, True, True]
d = [100, 200, 300, 400]
result = zip(a, b, c, d)
for x in result:
print(x)
Producción :
(1.1, 'H', True, 100)
(2.2, 'E', False, 200)
(3.3, 'L', False, 300)
(4.4, 'L', True, 400)
Artículo relacionado - Python List
- Convertir un diccionario en una lista en Python
- Eliminar todas las apariciones de un elemento de una lista en Python
- Eliminar duplicados de una lista en Python
- Cómo obtener el promedio de una lista en Python
- ¿Cuál es la diferencia entre los métodos de lista que añaden y amplían
- Cómo convertir una lista en cadena en Python