[英]Scrambling string letters in a list?
我试图弄清楚如何在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
首先,您会收到错误消息,因为您使用了错误的语法来创建列表:
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
您的结果可能会有所不同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.