2024-09-27 17:58:32 发布
网友
以下是我的编码:
word = ma['vals'] shuffled = list(word) random.shuffle(word) shuffled = ''.join(random.sample(word, len(word))) newval = shuffled
结果将是BALLOONSFLOWERSGIFTSFLOWERSCANDYFLOWERSBALLOONSBALLOONS。当我希望结果是例如,如果我在洗牌gifts,那么结果将是stgfi。在
BALLOONSFLOWERSGIFTSFLOWERSCANDYFLOWERSBALLOONSBALLOONS
gifts
stgfi
评论太长了,所以我会把它作为答案,尽管它不是
对不起,请不要误会,但这是我15年来见过的最糟糕的代码。你应该至少再复习一次基础教程,以便更好地掌握所发生的事情,因为我觉得你只是随意地输入一些东西,而不去理解它们的作用。
让我们从头开始:
ma['vals'] = [balloons, flowers, gifts, candy]
好吧,所以我假设ma是一本字典。你现在就用那本字典了。为什么在那里?
现在您只需将word设置为[balloons, flowers, gifts, candy]。为什么不直接做呢?另外,不要把一系列单词称为“word”。这意味着它是一个单词,但你把它列为一个列表。
[balloons, flowers, gifts, candy]
shuffled = list(word)
你为什么要写单字?已经是一张单子了。你现在所做的一切都准备好了:
shuffled = [balloons, flowers, gifts, candy]
你叫它洗牌,其实不然。
random.shuffle(word)
现在你洗牌。但是你没有使用shuffled变量,而是使用了variable这个词。
shuffled = ''.join(random.sample(word, len(word)))
现在您将shuffled设置为另一个对象,因此您从未使用过第一个shuffled。另外,从一个和列表一样长的列表中随机抽取一个样本,这和随机抽取列表是一样的,而且这个列表已经被洗牌了。
shuffled
newval = shuffled
你为什么这么做?
实际上,您的所有代码都可以压缩为:
newval = [balloons, flowers, gifts, candy] random.shuffle(newval)
这将有相同的最终结果:你将有一个随机排列的单词列表。
因此,三分之二的代码最终都没有做任何事情。上面的内容也很清楚为什么代码的行为不像您所想的那样。当你想洗牌一个单词的时候,你可以把一个单词的列表乱排。
必须从字符串创建列表。{1>在示例中,{1>将通过访问。然后可以通过调用list并传入字符串将其转换为列表。函数random.shuffle的命名可选参数random是排序所基于的函数。random.shuffle在适当的地方修改传入random.shuffle的列表,因此为什么要在列表上调用join,而不是调用{}的结果。
list
random.shuffle
random
join
>>> wordList = list(ma["vals"][0])) #"balloons" >>> random.shuffle(wordList,random=random.random) >>> ''.join(wordList) 'oboanlls'
如果您想随机选择一个单词,然后随机地将该单词的字母打乱:
In [27]: letters = list(random.choice(word)) In [28]: random.shuffle(letters) In [29]: ''.join(letters) Out[29]: 'blanolos'
这里,word是与脚本中相同的变量(即单词的列表)。
word
评论太长了,所以我会把它作为答案,尽管它不是
对不起,请不要误会,但这是我15年来见过的最糟糕的代码。你应该至少再复习一次基础教程,以便更好地掌握所发生的事情,因为我觉得你只是随意地输入一些东西,而不去理解它们的作用。
让我们从头开始:
好吧,所以我假设ma是一本字典。你现在就用那本字典了。为什么在那里?
^{pr2}$现在您只需将word设置为
[balloons, flowers, gifts, candy]
。为什么不直接做呢?另外,不要把一系列单词称为“word”。这意味着它是一个单词,但你把它列为一个列表。你为什么要写单字?已经是一张单子了。你现在所做的一切都准备好了:
你叫它洗牌,其实不然。
现在你洗牌。但是你没有使用shuffled变量,而是使用了variable这个词。
现在您将
shuffled
设置为另一个对象,因此您从未使用过第一个shuffled
。另外,从一个和列表一样长的列表中随机抽取一个样本,这和随机抽取列表是一样的,而且这个列表已经被洗牌了。你为什么这么做?
实际上,您的所有代码都可以压缩为:
这将有相同的最终结果:你将有一个随机排列的单词列表。
因此,三分之二的代码最终都没有做任何事情。上面的内容也很清楚为什么代码的行为不像您所想的那样。当你想洗牌一个单词的时候,你可以把一个单词的列表乱排。
必须从字符串创建列表。{1>在示例中,{1>将通过访问。然后可以通过调用}的结果。
list
并传入字符串将其转换为列表。函数random.shuffle
的命名可选参数random
是排序所基于的函数。random.shuffle
在适当的地方修改传入random.shuffle
的列表,因此为什么要在列表上调用join
,而不是调用{如果您想随机选择一个单词,然后随机地将该单词的字母打乱:
这里,
word
是与脚本中相同的变量(即单词的列表)。相关问题 更多 >
编程相关推荐