Я ищу функцию или короткую программу, которая получает строку (до 10 букв) и перетасовывает ее.
спасибо Ариэль
Перемешать строку в python
Ответ 1
>>> import random
>>> s="abcdef123"
>>> ''.join(random.sample(s,len(s)))
'1f2bde3ac'
Ответ 2
В случайном модуле есть функция shuffle. Обратите внимание, что он перемещается на место, поэтому вам сначала нужно преобразовать строку в список символов, перетасовать ее, а затем снова присоединиться к результату.
import random
l = list(s)
random.shuffle(l)
result = ''.join(l)
Ответ 3
Альтернативный прием для перетасовки строки:
# Python < 3
import random, array
def shuffle_text(text):
if isinstance(text, unicode):
temp= array.array('u', text)
converter= temp.tounicode
else:
temp= array.array('c', text)
converter= temp.tostring
random.shuffle(temp)
return converter()
Я добавил этот ответ только для полноты; на моем медленном домашнем сервере это быстрее для небольших входных строк (но разница очень мала), в то время как для более крупных строк она медленнее.