Python | Agrupar elementos en los mismos índices en una lista múltiple

Aplanar una lista 2D a una es un problema común que se enfrenta en muchos dominios. Pero a veces necesitamos emparejar elementos en índices específicos como uno solo, de modo que los elementos en los índices respectivos estén juntos. Este problema no es común, pero aun así tener una solución ayuda.

Analicemos ciertas formas de emparejar elementos en índices específicos.

Método n.º 1: usar la comprensión de lista +zip()
la comprensión de lista se puede usar para lograr esta tarea en particular junto con la función zip que realiza la tarea de emparejar los índices similares. Este método es solo una abreviatura del método ingenuo.

# Python3 code to demonstrate 
# index list elements pairing
# using list comprehension 
  
# initializing list  
test_list = [[1, 4, 5], [4, 6, 8], [8, 3, 10]]
  
# printing original list
print ("The original list is : " + str(test_list))
  
# using list comprehension  
# to perform index list elements pairing
res = [list(x) for x in zip(*test_list)]
  
# printing result
print ("The index elements pairs list is " + str(res))
Producción:

The original list is : [[1, 4, 5], [4, 6, 8], [8, 3, 10]]
The index elements pairs list is [[1, 4, 8], [4, 6, 3], [5, 8, 10]]

 
Método n.º 2:map() + zip()
map se puede usar la función para mapear cada resultado de iteración en una sola lista mientras zip la función realiza el emparejamiento de elementos de índice. Esta combinación se puede utilizar para lograr el resultado deseado.

# Python3 code to demonstrate 
# index list elements pairing
# using map() + zip()
  
# initializing list  
test_list = [[1, 4, 5], [4, 6, 8], [8, 3, 10]]
  
# printing original list
print ("The original list is : " + str(test_list))
  
# using map() + zip()  
# to perform index list elements pairing
res = list(map(list, zip(*test_list)))
  
# printing result
print ("The index elements pairs list is " + str(res))
Producción:

The original list is : [[1, 4, 5], [4, 6, 8], [8, 3, 10]]
The index elements pairs list is [[1, 4, 8], [4, 6, 3], [5, 8, 10]]

 
Método n.º 3: el uso dezip()
la función Uso zip solo lo hace todo y solo necesita ser encasillado en la lista para imprimir el resultado en formato de lista. Es la forma más pythonica de realizar esta tarea y también la más elegante.

# Python3 code to demonstrate 
# index list elements pairing
# using zip()
  
# initializing list  
test_list = [[1, 4, 5], [4, 6, 8], [8, 3, 10]]
  
# printing original list
print ("The original list is : " + str(test_list))
  
# using zip()  
# to perform index list elements pairing
res = list(zip(*test_list))
  
# printing result
print ("The index elements pairs list is " + str(res))
Producción:

The original list is : [[1, 4, 5], [4, 6, 8], [8, 3, 10]]
The index elements pairs list is [(1, 4, 8), (4, 6, 3), (5, 8, 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 *