gpt4 book ai didi

python - List1中的单词可以用List2中的字母拼写吗

转载 作者:行者123 更新时间:2023-12-01 05:26:35 26 4
gpt4 key购买 nike

我是编码和 Python 新手,我正在 OpenHatch 尝试 Scrabble Challenge 的一个版本:https://openhatch.org/wiki/Scrabble_challenge .

目标是检查列表中的每个单词是否可以用平铺架中的字母拼写。我编写了一个 for 循环来检查单词中的每个字母是否在瓷砖架中,如果是,则从架中删除该字母(以处理重复项)。但是,如果 for 循环发现单词的每个字母都在机架中,我很难知道如何将单词添加到我的 valid_word 列表中。

在此示例中,“age”应该有效,但“gag”不应该有效,因为机架中只有一个“g”。

word_list = ['age', 'gag']
rack = 'page'
valid_words = []

for word in word_list:
new_rack = rack
for x in range(len(word)):
if word[x] in new_rack:
new_rack = new_rack.replace(str(word[x]), "")

最佳答案

我可能会使用 Counter这里是为了简化事情。 Counter 类的作用是创建可迭代项中的项目与其频率的映射。我可以用它来检查单个字符的频率是否大于机架中的频率,并相应地打印该单词。

>>> from collections import Counter
>>> word_list = ['age', 'gag']
>>> rack = Counter('page')
>>> print rack
Counter({'a': 1, 'p': 1, 'e': 1, 'g': 1})
>>> for word in word_list:
word_count = Counter(word)
for key, val in word_count.iteritems():
if rack[key] < val:
break
else:
print word


age # Output.

此外,Counter有一个很好的属性,它返回 0如果Counter中不存在给定的键类(class)。因此,我们可以跳过检查图 block 是否具有 key ,因为 rack[key] < val在这种情况下将会失败。

关于python - List1中的单词可以用List2中的字母拼写吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21221595/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com