这对于评论来说太长了,所以我会把它作为答案,虽然它不是。
对不起,请不要误会,但这是我 15 年来见过的最糟糕的代码。您可能应该至少再次阅读基本教程,以更好地掌握正在发生的事情,因为这对我来说就像您只是随机输入内容而没有尝试理解它们的作用。
让我们从头开始:
ma['vals'] = [balloons, flowers, gifts, candy]
好的,所以我假设 ma 是一本字典。您在代码中的任何地方都没有使用该字典。为什么会在那里?
word = ma['vals']
现在您只需将 word 设置为[balloons, flowers, gifts, candy]
. 为什么不直接这样做呢?另外,不要将单词列表称为“单词”。这意味着它是一个词,但你把它列成了一个列表。
shuffled = list(word)
你为什么要做list(word)?已经是清单了。您现在所做的一切都已设置:
shuffled = [balloons, flowers, gifts, candy]
你称它为洗牌,其实不是。
random.shuffle(word)
现在你洗牌。但是你没有使用 shuffled 变量,你使用了变量这个词。
shuffled = ''.join(random.sample(word, len(word)))
现在你设置shuffled
了另一件事,所以你从来没有使用过第一个shuffled
. 此外,从与列表一样长的列表中随机抽取样本,与打乱它是一样的,并且列表已经打乱了。
newval = shuffled
你为什么要这么做?
实际上,您的所有代码都可以压缩为:
newval = [balloons, flowers, gifts, candy]
random.shuffle(newval)
这将具有相同的最终结果:您将获得一个随机打乱的单词列表。
所以三分之二的代码实际上最终什么都不做。上面也很清楚为什么你的代码不像你想象的那样表现。当您想要随机播放一个单词时,您可以随机播放一个单词列表。