Programa de Python para invertir cada K-ésima fila en una array

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *