Me gustaría cortar letras al azar de una cadena.Python: Escogiendo un elemento sin reemplazo
Dadas s = "Hola"
me gustaría recoger elementos de 's' sin reemplazo, pero mantener el número de índice.
Por ejemplo
>>> random.sample(s,len(s))
['w', 'h', 'o', 'd', 'y']
está cerca de lo que yo quiero, sino que en realidad prefieren algo así como
[('w', 2'), ('h', 0), (' o ', 1), (' d ', 3), (' y ', 4)]
con pares de letras y índices. Esto es importante porque la misma letra aparece en "s" más de una vez. es decir, "letra", donde "t" aparece dos veces, pero necesito distinguir la primera "t" de la segunda.
Idealmente, en realidad solo necesito generar/seleccionar letras cuando las necesito, pero mezclar y calcular todas las letras a la vez (es decir, en una lista como la mostrada arriba) está bien.
Iba a sugerir algo similar, pero deberías usar el truco 'list (enumerate (s))' anterior: 'return random.shuffle (list (enumerate (s)))' – jemfinch
Sí, el único beneficio esto realmente proporciona si, por el contrario, quiere hacer algo funky seleccionando qué índices quiere usar en su lugar y luego puede hacer eso seguido de las dos últimas líneas aquí. –