我最近开始学习python,并试图优化一个拼字游戏解决程序来练习。我写了一个工作程序,但是在添加了考虑空白块的功能之后,我意识到我做错了,运行起来需要很长时间。我建立了一个巨大的列表,列出了可能的机架,然后针对每个可能的机架运行我的程序。现在,为了优化事情,我希望建立一个可用字母的列表,然后一旦我有了一个可能的单词列表,在机架上对它们进行评分(以考虑空白)。在
我以前做的是:
for item in word_list:
for letter in item:
if item.count(letter) > players_rack.count(letter):
valid_words.append(item)
我想知道是否有一种方法可以使用Counter()简化这个过程
我想做的是,从Counter(letters_to_work_with)
中减去Counter(word)
,如果有任何项是负数……这可能是Counter()不可能的,那么就说它不是一个有效的单词。在
有没有一种数据类型可以在这里更好地工作?还是有一种我看不到的方法?在
谢谢。在
你的问题对我来说不太清楚——至少发布一些输入和输出的示例可能会有所帮助(例如:“如果把这个和这个作为输入,我想把这个作为输出”)。在
确实可以从另一个中减去一个
Counter
,但这并不能产生预期的结果。现在您仍然可以为特定的键减去值,即在Python3.2及更高版本中,
Counter
有{a1},它完全符合您的需要,保留0和负值,而实际的-
运算符则没有。它在适当的位置运行,所以你应该:相关问题 更多 >
编程相关推荐