Python | Operar en cada K-ésimo elemento de la lista

Por lo general, deseamos emplear una función particular para todos los elementos de una lista. Pero a veces, de acuerdo con el requisito, desearíamos emplear una funcionalidad particular para ciertos elementos de la lista, básicamente para cada K-ésimo elemento en la lista. Analicemos ciertas formas en que esto se puede realizar.

Método n.º 1: uso de la comprensión de listas +enumerate()
La funcionalidad de obtener cada número K de la lista se puede realizar con la ayuda de la comprensión de listas y la función de enumeración ayuda en la iteración de toda la lista.

# Python3 code to demonstrate
# Edit every Kth element in list 
# using list comprehension + enumerate()
  
# initializing list 
test_list = [1, 4, 5, 6, 7, 8, 9, 12]
  
# printing the original list
print ("The original list is : " + str(test_list))
  
# using list comprehension + enumerate()
# Edit every Kth element in list 
# add 2 to every 3rd element
res = [i + 2 if j % 3 == 0 else i 
       for j, i in enumerate(test_list)]
  
# printing result
print ("The list after editing every kth element : " + str(res))
Producción:

The original list is : [1, 4, 5, 6, 7, 8, 9, 12]
The list after editing every kth element : [3, 4, 5, 8, 7, 8, 11, 12]

 
Método n.º 2: usar la comprensión de listas + el corte de listas Las
funciones mencionadas anteriormente pueden ayudar a realizar estas tareas. La comprensión de la lista hace la tarea de iteración en la lista y el corte de la lista hace la extracción de cada elemento Kth.

# Python3 code to demonstrate
# Edit every Kth element in list 
# using list comprehension + list slicing 
  
# initializing list 
test_list = [1, 4, 5, 6, 7, 8, 9, 12]
  
# printing the original list
print ("The original list is : " + str(test_list))
  
# using list comprehension + list slicing
# Edit every Kth element in list 
# add 2 to every 3rd element
test_list[0::3] = [i + 2 for i in test_list[0 :: 3]]
  
# printing result
print ("The list after editing every kth element : "
                                   + str(test_list))
Producción:

The original list is : [1, 4, 5, 6, 7, 8, 9, 12]
The list after editing every kth element : [3, 4, 5, 8, 7, 8, 11, 12]

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 *