random.shuffle()
import random
lista = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
n = len(lista) # número de elementos totales de lista
m = random.randint(2,n) # número de elementos a extraer
print("Lista de partida: ", lista)
random.shuffle(lista) # baraja aleatoriamente los elementos de la lista
print('De los {} elementos elegimos {} aleatoriamente: {}'.format(n, m, lista[:m]))
Lista de partida: ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'] De los 10 elementos elegimos 7 aleatoriamente: ['i', 'h', 'c', 'a', 'f', 'j', 'b']
random.sample()
devuelve una nueva lista mezcladaimport random
lista = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
n = len(lista) # número de elementos totales de lista
m = random.randint(2,n) # número de elementos a extraer
barajada = random.sample(lista, m) # elegimos m elementos sin repetición
print('De los {} elementos elegimos {} aleatoriamente: {}'.format(n, m, barajada))
De los 10 elementos elegimos 10 aleatoriamente: ['h', 'i', 'a', 'e', 'g', 'd', 'b', 'c', 'j', 'f']
Permutamos los elementos de una lista auxiliar con números correlativos.
from random import randint
lista = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
n = len(lista) # número de elementos totales de lista
listb = list(range(n)) # creamos una lista con n números correlativos
m = randint(2, n) # número de elementos a extraer
print("Lista de partida: ", lista)
print(listb)
for i in range(n-1, 1, -1):
r = randint(0, i)
listb[i], listb[r] = listb[r], listb[i] # permutamos valores
print(listb)
extraida = []
for i in range(m):
extraida.append(lista[listb[i]])
print('De los {} elementos elegimos {} aleatoriamente: {}'.format(n, m, extraida))
Lista de partida: ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [5, 6, 8, 0, 1, 9, 2, 3, 4, 7] De los 10 elementos elegimos 2 aleatoriamente: ['f', 'g']