Python | Imprimir elementos de lista en rango circular

Dada una lista de elementos, la tarea es imprimir el elemento en un grupo de k hasta n-iteración en rango circular.

Ejemplos:

Input: list = [1, 2, 3, 4, 5, 6, 7], k = 3, n =10
Output: 
[1, 2, 3]
[4, 5, 6]
[7, 1, 2]
[3, 4, 5]
[6, 7, 1]
[2, 3, 4]
[5, 6, 7]
[1, 2, 3]
[4, 5, 6]
[7, 1, 2]

Input: list = [10, 20, 30, 40, 50, 60, 70], k = 4, n = 5
Output: 
[10, 20, 30, 40]
[50, 60, 70, 10]
[20, 30, 40, 50]
[60, 70, 10, 20]
[30, 40, 50, 60]

 
Podemos usar itertools with zippara hacer esta tarea.

Ejemplo 1:

# Python code to print element in group
# of 5 till 9 iteration in circular range.
  
# Importing
from itertools import cycle
  
# list initialization
List = [90, 99, 192, 0, 43, 55]
  
# Defining no of iterations
n = 9
  
# Defining no of grouping
k = 5
  
for index, *ans in zip(range(n), *[cycle(List)] * k):
    # printing ans
    print(ans)
Producción:

[90, 99, 192, 0, 43]
[55, 90, 99, 192, 0]
[43, 55, 90, 99, 192]
[0, 43, 55, 90, 99]
[192, 0, 43, 55, 90]
[99, 192, 0, 43, 55]
[90, 99, 192, 0, 43]
[55, 90, 99, 192, 0]
[43, 55, 90, 99, 192]

 
Ejemplo #2:

# Python code to print element in group
# of 6 till 4 iteration in circular range.
  
# Importing
from itertools import cycle
  
# list initialization
List = ['Geeks', 'for', 'geeks', 'is', 'portal']
  
# Defining no of iterations
n = 4
  
# Defining no of grouping
k = 6
  
for index, *ans in zip(range(n), *[cycle(List)] * k):
    # printing ans
    print(ans)
Producción:

['Geeks', 'for', 'geeks', 'is', 'portal', 'Geeks']
['for', 'geeks', 'is', 'portal', 'Geeks', 'for']
['geeks', 'is', 'portal', 'Geeks', 'for', 'geeks']
['is', 'portal', 'Geeks', 'for', 'geeks', 'is']

Publicación traducida automáticamente

Artículo escrito por everythingispossible 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 *