Python
Сортировка строки по словам
Как можно в Python перемешать (рандомно) слова в введенной строке. Именно слова (набор символов, разделенных пробелом), а не буквы во всей строке.
Возьми sample из модуля random:
Функция sample берёт указанное количество случайно выбранных элементов из переданной последовательности. Указываем длину последовательности - получаем все её элементы в случайном порядке. Исходная последовательность остаётся нетронутой. Возвращается новый список.
Есть ещё функция shuffle, но её не рекомендую, если надо сохранить исходный список, так как она именно его и меняет. Вообще, модификация in-place - устаревший подход, который имеет смысл использовать только как меру микрооптимизации применительно к локальным структурам часто исполняемых функций (без вытаскивания побочного эффекта наружу). Если нет серьёзных причин мутировать исходное значение, всегда лучше создать новое.
from random import sample
ws = input().split()
print(' '.join(sample(ws, len(ws))))
Функция sample берёт указанное количество случайно выбранных элементов из переданной последовательности. Указываем длину последовательности - получаем все её элементы в случайном порядке. Исходная последовательность остаётся нетронутой. Возвращается новый список.
Есть ещё функция shuffle, но её не рекомендую, если надо сохранить исходный список, так как она именно его и меняет. Вообще, модификация in-place - устаревший подход, который имеет смысл использовать только как меру микрооптимизации применительно к локальным структурам часто исполняемых функций (без вытаскивания побочного эффекта наружу). Если нет серьёзных причин мутировать исходное значение, всегда лучше создать новое.
import random
s = input() # вводим строку
t = s.split() # превращаем строку в массив слов
random.shuffle(t) # перемешиваем массив в случайном порядке
print(*t) # выводим массив в виде слов, разделённых пробелами
Если нужно не вывести, а получить строку из массива, то: s = ' '.join(t)
Для этого можно использовать модуль random и его функцию shuffle(). Вот пример кода:
Обратите внимание, что этот код будет работать только для строк, в которых слова разделены одним пробелом. Если между словами может быть несколько пробелов или другие символы (например, запятые), то потребуется более сложная логика разбиения строки на слова.
import random
def shuffle_words(s):
words = s.split(' ') # разбиваем строку на слова
random.shuffle(words) # перемешиваем слова
return ' '.join(words) # собираем слова обратно в строку
s = "Это пример строки, которую нужно перемешать"
print(shuffle_words(s))
В этом коде мы разбиваем входную строку на слова с помощью метода split(), затем перемешиваем полученный список слов с помощью функции shuffle(), и затем собираем слова обратно в строку с помощью метода join(). Обратите внимание, что этот код будет работать только для строк, в которых слова разделены одним пробелом. Если между словами может быть несколько пробелов или другие символы (например, запятые), то потребуется более сложная логика разбиения строки на слова.
from random import shuffle
from random import shuffle
s = 'Как можно в Python перемешать (рандомно) слова в введенной строке'.split(' ')
shuffle(s)
print(' '.join(s))
Но какое к этому имеет отношение сортировка?
from random import shuffle
s = 'Как можно в Python перемешать (рандомно) слова в введенной строке'.split(' ')
shuffle(s)
print(' '.join(s))
Но какое к этому имеет отношение сортировка?
чтобы разделить сточку по словам надо написать example_string.split(sep = ' ')
Похожие вопросы
- Сортировка в Python
- Шифрование строки. Python
- 4 задачи по темам:Массивы,Строки,Циклы,условный оператор
- Массив состоит из нескольких строк и нужно из каждой строки вывести наибольшее число
- Помогите чайнику в Питоне. Как правильно перейти на другую строку в коде, чтоб он не запустился раньше времени?
- Помогите написать программу которая посчитает количество строк в отзыве
- На входе строка s = '3' + n * '5'. В конце сумма её цифр должна быть равна 27. Как преобразовать эту строку в число?
- Python: как в файле json найти строки по заданному тексту и скопировать рядом стоящую строку
- Python задача "Сортировка перестановки"
- Вот это можно принять как реализацию пирамидальной сортировки? Придумал сам, никуда не подглядывал