Python 元组 wordle 猜测器 <string> 错误
Python tuple wordle guesser <string> error
所以,我正在猜词。
我无法得到“if (deadwords) not in x:”
它告诉我把它变成一个字符串,但作为一个字符串,它不能正常工作(忘记有字母的单词)我相信它叫做元组,但我不确定如何使用它们...
代码:
list1 = [
lotta words (too many)
]
c = 0
deadwords = ("r","o","s","k","n")
for x in list1:
if (deadwords) not in x:
c += 1
print(f"found: {x}")
print(c)
错误信息:
Traceback (most recent call last):
File "main.py", line 2324, in <module>
if (deadwords) not in x:
TypeError: 'in <string>' requires string as left operand, not tuple
您可以使用 map()
来确定每个死词是否在给定的词中,然后使用 any()
来查找该词中是否存在任何死词:
list1 = [
"sleep",
"bbbbb"
]
c = 0
deadwords = ("r","o","s","k","n")
for word in list1:
if not any(map(lambda x: x in word, deadwords)):
c += 1
print(f"found: {word}")
print(c)
我建议为此使用 set
:
word_list = ["hello", "world"]
deadwords = {"r", "o", "s", "k", "n"}
for word in word_list:
if deadwords.intersection(word):
print(f"deadword found in {word}")
如果 deadwords
中的 none 个字母在 word
.
中,deadwords.intersection(word)
将 return 一个空集
您可以更改此代码,然后在找到要删除的单词后缩小可能的猜测范围。您想要维护 word_list
的副本并修改它而不是原始副本,例如:
word_list = [...]
dead_letters = set()
remaining = word_list.copy()
while not game_over:
# guess word
# validate guess
# add bad letters to the dead_letters set
remaining = [word for word in remaining if not dead_letters.intersection(word)]
所以,我正在猜词。 我无法得到“if (deadwords) not in x:” 它告诉我把它变成一个字符串,但作为一个字符串,它不能正常工作(忘记有字母的单词)我相信它叫做元组,但我不确定如何使用它们...
代码:
list1 = [
lotta words (too many)
]
c = 0
deadwords = ("r","o","s","k","n")
for x in list1:
if (deadwords) not in x:
c += 1
print(f"found: {x}")
print(c)
错误信息:
Traceback (most recent call last):
File "main.py", line 2324, in <module>
if (deadwords) not in x:
TypeError: 'in <string>' requires string as left operand, not tuple
您可以使用 map()
来确定每个死词是否在给定的词中,然后使用 any()
来查找该词中是否存在任何死词:
list1 = [
"sleep",
"bbbbb"
]
c = 0
deadwords = ("r","o","s","k","n")
for word in list1:
if not any(map(lambda x: x in word, deadwords)):
c += 1
print(f"found: {word}")
print(c)
我建议为此使用 set
:
word_list = ["hello", "world"]
deadwords = {"r", "o", "s", "k", "n"}
for word in word_list:
if deadwords.intersection(word):
print(f"deadword found in {word}")
如果 deadwords
中的 none 个字母在 word
.
deadwords.intersection(word)
将 return 一个空集
您可以更改此代码,然后在找到要删除的单词后缩小可能的猜测范围。您想要维护 word_list
的副本并修改它而不是原始副本,例如:
word_list = [...]
dead_letters = set()
remaining = word_list.copy()
while not game_over:
# guess word
# validate guess
# add bad letters to the dead_letters set
remaining = [word for word in remaining if not dead_letters.intersection(word)]