【发布时间】:2021-05-16 10:38:08
【问题描述】:
我正在制作一个文字游戏程序,我从文本文件中获取约 80,000 个单词的列表,然后将这些单词用作单词词典以供选择。用户请求一个特定长度的单词,然后将其加扰给他们。然后,他们猜测长度相同或更少的单词,以及使用相同字母数量或更少的单词。我有这个列表理解,以便从词典中获取所有单词,这些单词是加扰单词的子集并且也在词典中。但是,它允许出现比原始单词中更多的字母。例如:如果打乱的单词是'minute',那么'in' 应该是正确答案,但'inn' 不应该。我现在写它的方式允许这样做。这是列表理解:
correct_answers = [
word for word in word_list
if set(word).issubset(random_length_word)
and word in word_list
and len(word) <= len(random_length_word)]
所以我正在寻找类似issubset 的东西,但它只允许相同数量或更少的字母。希望这是有道理的。提前致谢。
【问题讨论】:
-
我觉得你已经很好地理解了你想要做什么。如果我是你,我不会以列表理解的方式这样做,因为你有两个大逻辑。您可以创建一个函数来检查单个单词,然后将其应用于您拥有的所有单词。或者您可以创建一个更小的帮助函数专门用于检查频率,然后在您的列表理解中使用它。
-
题外话,但
and word in word_list是多余的