Dada una Array, la tarea es escribir un programa en Python para invertir cada K-ésima fila. Donde, K es un valor de intervalo.
Entrada : test_list = [[5, 3, 2], [8, 6, 3], [3, 5, 2], [3, 6], [3, 7, 4], [2, 9]], K = 4
Salida : [[5, 3, 2], [8, 6, 3], [3, 5, 2], [6, 3], [3, 7, 4], [2, 9]]
Explicación : cada cuarta fila se invierte.
Entrada : test_list = [[5, 3, 2], [8, 6, 3], [3, 5, 2], [3, 6], [3, 7, 4], [2, 9]], K = 2
Salida : [[5, 3, 2], [3, 6, 8], [3, 5, 2], [6, 3], [3, 7, 4], [9, 2]]
Explicación : cada segunda fila se invierte.
Método 1: usar invertido() y bucle
En esto, iteramos para cada fila, y si se encuentra la K-ésima fila, la reversión se realiza usando reverse().
Ejemplo:
Python3
# Python3 code to demonstrate working of # Reverse Kth rows in Matrix # Using reversed() + loop # initializing list test_list = [[5, 3, 2], [8, 6, 3], [3, 5, 2], [3, 6], [3, 7, 4], [2, 9]] # printing original list print("The original list is : " + str(test_list)) # initializing K K = 3 res = [] for idx, ele in enumerate(test_list): # checking for K multiple if (idx + 1) % K == 0: # reversing using reversed res.append(list(reversed(ele))) else: res.append(ele) # printing result print("After reversing every Kth row: " + str(res))
Producción:
La lista original es: [[5, 3, 2], [8, 6, 3], [3, 5, 2], [3, 6], [3, 7, 4], [2, 9]]
Después de invertir cada fila K: [[5, 3, 2], [8, 6, 3], [2, 5, 3], [3, 6], [3, 7, 4], [9, 2] ]
Método 2: Uso de Slicing y comprensión de listas
En esto, la tarea de revertir se realiza utilizando el segmento de string, y la comprensión de listas se usa como abreviatura para realizar la tarea de iteración.
Ejemplo:
Python3
# Python3 code to demonstrate working of # Reverse Kth rows in Matrix # Using Slicing + list comprehension # initializing list test_list = [[5, 3, 2], [8, 6, 3], [3, 5, 2], [3, 6], [3, 7, 4], [2, 9]] # printing original list print("The original list is : " + str(test_list)) # initializing K K = 3 # using enumerate() to get index and elements. # list comprehension to perform of iteration res = [ele[::-1] if (idx + 1) % K == 0 else ele for idx, ele in enumerate(test_list)] # printing result print("After reversing every Kth row: " + str(res))
Producción:
La lista original es: [[5, 3, 2], [8, 6, 3], [3, 5, 2], [3, 6], [3, 7, 4], [2, 9]]
Después de invertir cada fila K: [[5, 3, 2], [8, 6, 3], [2, 5, 3], [3, 6], [3, 7, 4], [9, 2] ]
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