Python | Intercambio de sublistas en un rango dado

El problema de intercambiar un solo número puede extenderse al problema de tener la lista y realizar el intercambio en un rango completo, lo que puede ser una utilidad útil a lo largo del tiempo. Esto tiene su aplicación en cualquier tipo de manipulación de datos en varios dominios. Analicemos ciertas formas en que esto se puede realizar.

Método n.º 1: usar la división de listas y el intercambio
Las listas se pueden intercambiar de la misma manera que se puede intercambiar una variable en python, pero la diferencia es que, en lugar de la variable, pasamos una lista dividida para intercambiar.

# Python3 code to demonstrate
# swapping sublist
# using list swapping and slicing
  
# initializing list 
test_list = [1, 4, 5, 8, 3, 10, 6, 7, 11, 14, 15, 2]
  
# printing the original list
print ("The original list is : " + str(test_list))
  
# using list swapping and slicing 
# swapping sublist
test_list[1 : 3], test_list[6 : 8] = test_list[6 : 8], test_list[1 : 3]
  
# printing result
print ("The list after sublist swapping : " + str(test_list))
Producción:

The original list is : [1, 4, 5, 8, 3, 10, 6, 7, 11, 14, 15, 2]
The list after sublist swapping : [1, 6, 7, 8, 3, 10, 4, 5, 11, 14, 15, 2]

 
Método n.º 2: el usoslice() + itertools.chain.from_iterable()
de la función de división puede realizar la funcionalidad de división para extraer una sublista de una lista y la función from_iterable ayuda a realizar la funcionalidad de intercambio.

# Python3 code to demonstrate swapping 
# sublist using slice() + itertools.chain.from_iterable()
import itertools
  
# initializing list 
test_list = [1, 4, 5, 8, 3, 10, 6, 7, 11, 14, 15, 2]
  
# printing the original list
print ("The original list is : " + str(test_list))
  
# using slice() + itertools.chain.from_iterable()
# swapping sublist
slice_1 = test_list[1 : 3]
slice_2 = test_list[6 : 8]
slice_temp = [slice(0, 1), slice(6, 8), slice(3, 6),
              slice(1, 3), slice(8, len(test_list))]
  
res = list(itertools.chain.from_iterable([test_list[i]
                                for i in slice_temp]))
  
# printing result
print ("The list after sublist swapping : " + str(res))
Producción:

The original list is : [1, 4, 5, 8, 3, 10, 6, 7, 11, 14, 15, 2]
The list after sublist swapping : [1, 6, 7, 8, 3, 10, 4, 5, 11, 14, 15, 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 *