Formas de barajar una tupla en Python

Barajar números a veces puede resultar de gran ayuda durante las prácticas de programación. Este proceso se puede implementar directamente en las estructuras de datos que son mutables como las listas, pero como sabemos que las tuplas son inmutables, no se pueden barajar directamente. Si intenta hacerlo como se hace en el siguiente código, se generará un error. Veamos el siguiente ejemplo.

Python3

import random
  
# Initializing tuple
t = (1,2,3,4,5)
  
# Trying to shuffle using random.shuffle
random.shuffle(t)

Producción:

TypeError: 'tuple' object does not support item assignment

Entonces, ¿cómo proceder? Entonces, hay dos formas de barajar la tupla, y se mencionan a continuación:

Método #1: Encasillamiento

Este es un método simple para barajar en tuplas. Puede encasillar las tuplas en una lista y luego realizar operaciones de barajado realizadas en la lista y luego encasillar esa lista nuevamente en la tupla. Una forma es usar random.shuffle().

Python3

# Python3 code to demonstrate  
# shuffle a tuple  
# using random.shuffle() 
import random 
  
# initializing tuple
tup = (1,2,3,4,5)
  
# Printing original tuple
print("The original tuple is : " + str(tup))
  
# Conversion to list
l = list(tup)
  
# using random.shuffle() 
# to shuffle a list
random.shuffle(l)
  
# Converting back to tuple
tup = tuple(l)
  
# Printing shuffled tuple
print ("The shuffled tuple is : " + str(tup))

Producción:

The original tuple is: (1, 2, 3, 4, 5)
The shuffled tuple is: (2, 3, 4, 1, 5)

Método #2: Usando random.sample()

random.sample() crea un nuevo objeto e incluso si se pasa una tupla como primer argumento, devuelve una lista, por lo que, como último paso, es obligatorio volver a convertir la lista en la tupla para obtener una tupla mezclada como salida.

Python3

# Python3 code to demonstrate  
# shuffle a tuple  
# using random.sample() 
import random 
  
# initializing tuple
tup = (1,2,3,4,5)
  
# Printing original tuple
print("The original tuple is : " + str(tup))
  
# Using random.sample(), passing the tuple and 
# the length of the datastructure as arguments
# and converting it back to tuple.
tup = tuple(random.sample(t, len(t)))
  
# Printing shuffled tuple
print ("The shuffled tuple is : " + str(tup))

Producción:

The original tuple is: (1, 2, 3, 4, 5)
The shuffled tuple is: (1, 5, 3, 2, 4)

Publicación traducida automáticamente

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