Python | Acceder a todos los elementos en una lista dada de índices

Acceder a un elemento desde su índice es una tarea más fácil en python, solo usar el []operador en una lista hace el truco. Pero en ciertas situaciones se nos presentan tareas cuando tenemos más de un índice y necesitamos obtener todos los elementos correspondientes a esos índices. Vamos a discutir ciertas formas de lograr esta tarea.

Input : list = [9, 4, 5, 8, 10, 14]
        index_list = [1, 3, 4]
Output : 4 8 10

Método n.º 1: uso de la comprensión de listas
Esta tarea es fácil de realizar con un bucle y, por lo tanto, la abreviatura es el primer método para comenzar con esta tarea. Iterar sobre la lista de índice para obtener los elementos correspondientes de la lista en una nueva lista es un método bruto para realizar esta tarea.

# Python3 code to demonstrate 
# to get elements from indices
# using list comprehension
  
# initializing lists
test_list = [9, 4, 5, 8, 10, 14]
index_list = [1, 3, 4]
  
# printing original lists
print ("Original list : " + str(test_list))
print ("Original index list : " + str(index_list))
  
# using list comprehension to 
# elements from list 
res_list = [test_list[i] for i in index_list]
      
# printing result
print ("Resultant list : " + str(res_list))

Producción :

Original list : [9, 4, 5, 8, 10, 14]
Original index list : [1, 3, 4]
Resultant list : [4, 8, 10]

Método n.º 2: usarmap() + __getitem__
otro método más para lograr esta tarea en particular es mapear una lista con otra y obtener elementos de índices y obtener los elementos coincidentes correspondientes de la lista de búsqueda. Esta es una forma bastante rápida de realizar esta tarea.

# Python3 code to demonstrate 
# to get elements from indices
# using map() + __getitem__
  
# initializing lists
test_list = [9, 4, 5, 8, 10, 14]
index_list = [1, 3, 4]
  
# printing original lists
print ("Original list : " + str(test_list))
print ("Original index list : " + str(index_list))
  
# using map() + __getitem__ to 
# elements from list 
res_list = map(test_list.__getitem__, index_list)
      
# printing result
print ("Resultant list : " + str(res_list))

Producción :

Original list : [9, 4, 5, 8, 10, 14]
Original index list : [1, 3, 4]
Resultant list : [4, 8, 10]

Método #3: Usaroperator.itemgetter()
esta técnica es el método más pythonico y elegante para realizar esta tarea en particular. Esta función comprime los elementos de la lista original con el índice requerido del otro, de ahí el método rápido para lograr esta tarea.

# Python3 code to demonstrate 
# to get elements from indices
# using operator.itemgetter()
from operator import itemgetter
  
# initializing lists
test_list = [9, 4, 5, 8, 10, 14]
index_list = [1, 3, 4]
  
# printing original lists
print ("Original list : " + str(test_list))
print ("Original index list : " + str(index_list))
  
# using operator.itemgetter() to 
# elements from list 
res_list = list(itemgetter(*index_list)(test_list))
      
# printing result
print ("Resultant list : " + str(res_list))

Producción :

Original list : [9, 4, 5, 8, 10, 14]
Original index list : [1, 3, 4]
Resultant list : [4, 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 *