Подтвердить что ты не робот

Перемешать строку в python

Я ищу функцию или короткую программу, которая получает строку (до 10 букв) и перетасовывает ее.
  спасибо Ариэль

4b9b3361

Ответ 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()

Я добавил этот ответ только для полноты; на моем медленном домашнем сервере это быстрее для небольших входных строк (но разница очень мала), в то время как для более крупных строк она медленнее.