Во-первых, вы получаете сообщение об ошибке, потому что вы использовали крайне неправильный синтаксис для создания списка:
str_var = list["sa", word1]
list
- это функция и ее аргументыдолжно быть между (..)
, а не [..]
.Но так как вы все равно строите список на этой самой строке, вам не нужно явно вызывать list
.
Тогда ваш код все еще не работает.random.shuffle
ожидает собственный список, а не строку - это то, чем word1
является в этот момент.Так вот что я сделал:
random.shuffle(list(str_var[1]))
и действительно работает (не выдает ошибку).Но исходное значение str_var
не изменилось ... После более пристального взгляда я понял, что list
возвращает здесь новый список, который перетасовывается, а затем радостно выбрасывается.Следовательно, аргумент random.shuffle
должен быть существующей переменной.Явно создав str_var[1]
как список в первую очередь, наконец решил, что:
import random
word1 = 'hello'
str_var = ["sa", list(word1)]
random.shuffle(str_var[1])
print (''.join (str_var[1]))
Результат:
lhloe
Ваш результат может отличаться.