Python 在列表中对字符串字母进行置乱?

Python 在列表中对字符串字母进行置乱?,python,arrays,string,Python,Arrays,String,我试图弄清楚如何在python IDLE中对数组/列表的1个区域中的字母进行置乱。在这个网站上寻找答案后,我发现了一个代码(我现在找不到),所以我对它进行了一些编辑,因为它只对数组中的一个字符串起作用。这就是我得到的 import random word1 = input("Enter a phrase / word: ") str_var = ["sa",word1] r=list(str_var[1]) random.shuffle(r) print (''.join (r)) 正如你所看

我试图弄清楚如何在python IDLE中对数组/列表的1个区域中的字母进行置乱。在这个网站上寻找答案后,我发现了一个代码(我现在找不到),所以我对它进行了一些编辑,因为它只对数组中的一个字符串起作用。这就是我得到的

import random
word1 = input("Enter a phrase / word: ")
str_var = ["sa",word1]
r=list(str_var[1])
random.shuffle(r)
print (''.join (r))
正如你所看到的,我需要使用变量'r'作为中间人。它能工作,但我觉得它太长了

import random
word1 = input("Enter a phrase / word: ")
str_var = list["sa", word1]
random.shuffle(str_var[1])
print (''.join (str_var[1]))
我怎样才能去掉中间人? 以下是我得到的错误,如果它有任何用处:

Traceback (most recent call last):
  File "C:/Users/HP/Downloads/Delete Me.py", line 3, in <module>
    str_var = list["sa", word1]
TypeError: 'type' object is not subscriptable
回溯(最近一次呼叫最后一次):
文件“C:/Users/HP/Downloads/Delete Me.py”,第3行,在
str_var=list[“sa”,单词1]
TypeError:“type”对象不可下标

首先,您会得到一个错误,因为您在创建列表时使用了错误的语法:

str_var = list["sa", word1]
list
是一个函数,因此它的参数应该介于
(…)
[…]
之间。但是,当您在该行构建列表时,不需要显式调用
list

那么您的代码仍然不起作用<代码>随机。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
你的结果可能不同