A veces necesitamos realizar una sola inserción en python, esto se puede hacer fácilmente con la ayuda de la función de inserción. Pero a veces, necesitamos insertar de manera repetida después de cada n números, para eso puede haber numerosas abreviaturas que pueden ser bastante útiles. Vamos a discutir ciertas formas en que esto se puede hacer.
Método n. ° 1: usarjoin() + enumerate()
Podemos usar la función de unión para unir cada una de las n-ésimas substrings con el dígito K y enumerar puede hacer la tarea de realizar la iteración selectiva de la lista.
# Python3 code to demonstrate # inserting K after every Nth number # using join() + enumerate() # initializing list test_list = ['g', 'e', 'e', 'k', 's', 'f', 'o', 'r', 'g', 'e', 'e', 'k', 's'] # printing original list print ("The original list is : " + str(test_list)) # initializing k k = 'x' # initializing N N = 3 # using join() + enumerate() # inserting K after every Nth number res = list(''.join(i + k * (N % 3 == 2) for N, i in enumerate(test_list))) # printing result print ("The lists after insertion : " + str(res))
La lista original es: [‘g’, ‘e’, ’e’, ’k’, ‘s’, ‘f’, ‘o’, ‘r’, ‘g’, ‘e’, ’e’, ‘k’, ‘s’]
Las listas después de la inserción: [‘g’, ‘e’, ’e’, ’x’, ‘k’, ‘s’, ‘f’, ‘x’, ‘o’, ‘r’, ‘g’, ‘x’, ‘e’, ’e’, ’k’, ‘x’, ‘s’]
Método n.º 2: el usoitertools.chain()
de este método también tiene la capacidad de realizar una tarea similar mediante un iterador y, por lo tanto, una mejora en el rendimiento. Esta función realiza una tarea similar pero usa el método de string para unir las n substrings.
# Python3 code to demonstrate # inserting K after every Nth number # using itertool.chain() from itertools import chain # initializing list test_list = ['g', 'e', 'e', 'k', 's', 'f', 'o', 'r', 'g', 'e', 'e', 'k', 's'] # printing original list print ("The original list is : " + str(test_list)) # initializing k k = 'x' # initializing N N = 3 # using itertool.chain() # inserting K after every Nth number res = list(chain(*[test_list[i : i+N] + [k] if len(test_list[i : i+N]) == N else test_list[i : i+N] for i in range(0, len(test_list), N)])) # printing result print ("The lists after insertion : " + str(res))
La lista original es: [‘g’, ‘e’, ’e’, ’k’, ‘s’, ‘f’, ‘o’, ‘r’, ‘g’, ‘e’, ’e’, ‘k’, ‘s’]
Las listas después de la inserción: [‘g’, ‘e’, ’e’, ’x’, ‘k’, ‘s’, ‘f’, ‘x’, ‘o’, ‘r’, ‘g’, ‘x’, ‘e’, ’e’, ’k’, ‘x’, ‘s’]
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