Помогите перемешать буквы в словах текст в Этом коде ничего не происходит
from nltk.tokenize import word_tokenize
import random
a = "some text"
a1 = word_tokenize(a)
for i in a1:
random.shuffle(i.split())
print(' '.join(a1))
Помогите перемешать буквы в словах текст в Этом коде ничего не происходит
from nltk.tokenize import word_tokenize
import random
a = "some text"
a1 = word_tokenize(a)
for i in a1:
random.shuffle(i.split())
print(' '.join(a1))
import random
text = "some text"
words = text.split()
for i, word in enumerate(map(list, words)):
random.shuffle(word)
words[i] = ''.join(word)
print(*words) # -> eosm txet
Строки неизменяемы в Питоне, поэтому чтобы перемешать буквы в словах текста, каждое слово преобразуются в список символов, список перемешивается, затем объединённые символы назад в список слов присваиваются.
В общем случае, слова на буквы можно не только посимвольно (на отдельные Unicode code points) разбивать. См. Как разбить строку на отдельные символы?
Могу предложить вот такой вариант:
import random
slovo = 'Привет'
slovo_list = list(slovo)
abrakadabra = random.sample(slovo_list, len(slovo_list))
print(abrakadabra)
Более простой способ:
# Программа, которая меняет местами буквы в слове.
# Импортирую модуль random
import random
Запрашиваю слово у пользователя.
слово = input("Введите слово, в котором вы хотите поменять буквы местами:\n")
Преобразую введённое слово из неизменяемого строкового типа (str)
в изменяемый тип список (list) при помощи функции list()
слово = list(слово)
Перемешиваю элементы списка при помощи метода.shuffle
random.shuffle(слово)
Создаю переменную строкового типа, в которую будет записываться слово
с перемешанными буквами.
перемешанное_слово = ""
При помощи цикла for добавляю последовательно буквы
в созданную пустую переменную (перемешанное_слово).
for буква in слово:
перемешанное_слово += буква
Вывожу результат на экран.
print(перемешанное_слово)