gpt4 book ai didi

python - 尝试为 AI 过滤字典

转载 作者:行者123 更新时间:2023-12-01 03:11:25 28 4
gpt4 key购买 nike

您好,我目前正在上课,我们的任务之一是创建一个绞刑吏人工智能。这项作业有两个部分,目前我陷入了第一个任务,即给定刽子手谜题的状态和作为字典的单词列表,从字典中过滤掉该谜题的不可能答案。举个例子,如果给定的谜题是 t--t,那么我们应该过滤掉所有长度不是 4 个字母的单词。接下来,我们应该过滤掉第一个和最后一个字母不包含 t 的单词(即 tent 和 test 是可以接受的,但 type 和 help 应该被删除)。目前,由于某种原因,我的代码似乎从字典中删除了所有条目,我不知道为什么。非常感谢您的帮助。我还在下面附上了我的代码以供引用。

def 过滤器(自身,拼图):

wordlist = dictionary.getWords()

newword = {i : wordlist[i] for i in range(len(wordlist)) if len(wordlist[i])==len(str(puzzle))}

string = puzzle.getState()

array = []
for i in range(len(newword)):
n = newword[i]
for j in range(len(string)):
if string[j].isalpha() and n[j]==string[j]:
continue
elif not string[j].isalpha():
continue
else:
array+=i
print(i)
break
array = list(reversed(array))
for i in array:
del newword[i]

一些附加信息:

puzzle.getState() 是一个提供给我们的函数,它返回一个描述拼图状态的字符串,例如。 a-a--- 或 t---t- 或 elepha--

dictionary.getWords 本质上是根据单词列表创建字典

谢谢!

最佳答案

这可能有点晚了,但是使用正则表达式:

import re

def remove(regularexpression, somewords):
words_to_remove=[]
for word in somewords:
#if not re.search(regularexpression, word):
if re.search(regularexpression, word)==None:
words_to_remove.append(word)
for word in words_to_remove:
somewords.remove(word)

例如,您有列表 words=['hello', 'halls', 'harp', 'heroic', 'tests']

您现在可以执行以下操作:remove('h[a-zA-Z]{4}$', Words)words 将变为 ['hello', 'halls'],而 remove('h[a-zA-Z]{3}s$', Words) 仅将 words 保留为 ['halls' ]

关于python - 尝试为 AI 过滤字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42869875/

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